`Vorangehender Teil`    /    `Fortsetzung`  

10.2.9	Export: Restriktionen (Einschränkungen von Ergebnismengen) 
 
Kataloge wachsen mit den Beständen, und so wachsen zwangsläufig auch die Ergebnismengen, die man beim Zugriff erhält. Der häufigste Wunsch ist es dann vermutlich, den Zugriff auf die neueste Literatur zu begrenzen. Genau das konnte man bis V14 mit allegro kaum machen. Zwar kann man die Erscheinungsjahre indexieren (bei CAT.API geschieht dies im Register 6), aber eine Begrenzung der Ergebnisse mit Bedingungen wie "nach 1998" oder "vor 1850" ist damit nicht erreichbar. Weitere Wünsche sind Einschränkungen nach Sprache oder Publikationstyp, falls man diese erfaßt hat. Auch solche Elemente kann man indexieren, aber die Ergebnismengen unter solchen Einträgen werden zu groß, sobald man eine Datenbank mit einigen -zigtausend Datensätzen hat. Andere Systeme kennen Suchbeschränkungen schon lange. An der Endbenutzer-Oberfläche haben die Systeme in der Regel zusätzliche Schalter, Auswahllisten oder Eingabefelder für Sprache, Typ oder Erscheinungsjahr. Es gibt keine allgemein übliche Bezeichnung für solche Funktionen. Z.B. wird von "Sekundäraspekten" gesprochen, im Englischen nennt man derlei Elemente meistens "qualifier" oder "limitation", manchmal findet man auch recht unanschauliche Namen wie z. B. bei Pica "ADI" (Additional Discriminative Information). Um einen möglichst knappen, prägnanten und unverwechselbaren Begriff zu haben, wurde für allegro der Terminus Restriktionen gewählt. 
Um Restriktionen endlich auch unter allegro möglich zu machen, mußte ein neues Konzept her, denn in die bisherige Indextechnik ließen sich solche Funktionen nicht effizient einbauen. Das neue Konzept sollte natürlich einerseits flexibel sein, also unter jeder Konfiguration für jeden gewünschten Zweck parametrierbar, andererseits sollte der Aufwand für den Anwender so gering wie möglich sein. 
Die unter diesen Vorgaben realisierte Lösung ist eine Ergänzung, keine Änderung der Indexierungstechnik. An bereits existierenden Indexparametern braucht nichts verändert zu werden, bestehende Indexdateien funktionieren unverändert weiter. Es kommen nur ein paar neue Befehle und eine neue Datei hinzu. Diese erhält den Typ .RES (für Restriktionen), also z.B. CAT.RES. Im Prinzip wird sie genauso erzeugt wie die Kurztiteldatei vom Typ .STL.  
Die Grundidee: man hinterlegt in der Datei .RES für jeden Datensatz ein paar Bytes für die Restriktionen, die es geben soll. Zum Beispiel: 4 Bytes für das Erscheinungsjahr + 3 Bytes für die Sprache + 1 Byte für den Publikationstyp. (Die Gesamtzahl dieser Bytes multipliziert mit der Anzahl Datensätze ergibt die Größe der Datei.) Das Programm (APAC, PRESTO, AVANTI etc.) kann hernach diese Bytes benutzen, um für jeden Satz festzustellen, ob er zur Ergebnismenge gehören soll oder nicht. Es gibt damit einen sehr erwünschten Zusatzeffekt: wenn die Restriktion bereits eingeschaltet wird, bevor eine Ergebnismenge gebildet wird, dann wird diese von vornherein kleiner. Somit kann eine Suche auch dann noch Erfolg haben, wenn es im Index z.B. unter einem Stichwort viele -zigtausend Einträge gibt. Allerdings kann die Bildung der Ergebnismenge in solchen Fällen etliche Sekunden dauern, weil ja für jeden Eintrag zusätzliche Vergleiche nötig sind. Ohne eingeschaltete Restriktion ändert sich am Zeitverhalten der Zugriffe nichts. 
 
Was muß man tun? 
Ganz genau wie für die .STL-Datei muß man bestimmte Zusätze in die Indexparameter einbauen, um die Einträge für die .RES-Datei zu erzeugen: 
 
ir=k		Länge des Restriktionsschlüssels  (entsprechend i0 bei .STL) 
		Wenn  ir  gesetzt ist, wird automatisch eine Datei dbn.RES angelegt, mit k Bytes je Satz. 
 
ak=zz+/		ak-Befehl für den "Restriktionsschlüssel"  (entspr. ak=zz+0 bei .STL) 
 
#-/		Abschnitt für die Erstellung des Restriktionsschlüssels. Dieser muß das Präfix "|/" erhalten. 
...		(entspr. #-0  und Präfix "|0" bei .STL) In diesem Abschnitt muß dann stehen, wie die Restriktionsangaben zu bilden sind. 
 
Für die Benutzung (APAC, avanti, alcarta) kommen noch eine oder mehrere Hilfszeilen in folgender Form hinzu (ebenfalls in der .API): 
 
R XXX mp "Text zu dieser Restriktion?Hilfszeile dazu" 
  XXX 				symbolischer Name der Restriktion, z.B. ERJ für Ersch.Jahr 
      m				Modus r, R, s oder S (d.h. die zugehörigen Werte sind in .RES bzw. .STL) 
       p			Position 1..72 (in .RES bzw. .STL), wo die Werte stehen 
         "Text?Hilfe"	wird z.B. von APAC, a99 und alcarta für das Menü benutzt 
 
Beispiel: 
 
R ERJ r1 "Erscheinungsjahr?Einschränkung auf einen Zeitraum" 
R TYP r5 "Publikationstyp" 
... 
Das bedeutet: man hat im .RES-Schlüssel auf Position 1 das Erscheinungsjahr, symbolischer Name soll ERJ sein, auf Pos. 5 den Publikationstyp. 
 
Die R-Befehle werden in APAC bzw. a99/alcarta zu einem Auswahlmenü verarbeitet (s.u.). Dem avanti-Server ermöglichen sie das Abarbeiten von Befehlen wie  find ... erj >1990 , denn dem Server muß ja gesagt werden, was "erj" bedeutet. Für sich genommen (und für PRESTO) bewirken die R-Zeilen aber gar nichts: die Struktur der .RES (und evtl. .STL) muß damit übereinstimmen, das ist das Entscheidende, sonst kann die Sache nicht funktionieren. Hauptsächlich kommt es also auf den Abschnitt unter #-/ an. Unter PRESTO kann der Eingeweihte auch Restriktionen nutzen (Positionen in der STL) , für die es keine R-Zeilen gibt. 
Die Modusbuchstaben 'R' und 'S' haben eine etwas andere Wirkung als 'r' und 's', siehe unten. 
 
Es gibt sogar die Alternative, sich keine dbn.RES zu leisten, sondern nur Teile innerhalb der bestehenden dbn.STL für diesen Zweck zu nutzen. Dann sind keine zusätzlichen Maßnahmen nötig, nur die R-Zeilen, und zwar mit einem 's' oder 'S' statt 'r' oder 'R' an der Position m. Die .STL muß dann natürlich geeignete Bestandteile haben, die immer an derselben Position stehen. Jede Position von 1 bis 72 ist dafür nutzbar. 
Nachteil: Zugriffe auf dbn.STL sind viel langsamer auf dbn.RES. (bis ca. Faktor 10) 
Beides ist kombinierbar, d.h. es kann R-Zeilen mit 'r' oder 'R' und andere mit 's' oder 'S' geben. Der OPAC-Benutzer muß den Zusammenhang und die Positionen nicht kennen - dafür sind ja die R-Zeilen gedacht. 
 
Zusatzfunktion für INDEX 
 
Der Aufruf  INDEX -fx ...   produziert die .RES-Datei (analog zu -fs für die .STL) 
Wenn der Index erneuert wird (mit -fi, -f7 oder -fn), wird die .RES automatisch mit erzeugt, genau wie auch die .STL. (Leider konnte man hierfür nicht -fr nehmen, weil dies schon für das Entlüften belegt ist.) 
Im CockPit von V15 gibt es einen eigenen Menüpunkt "x = Restriktionsdatei erneuern" unter "organisieren". Hat man die oben beschriebenen Vorkehrungen getroffen, braucht man nur noch diesen Punkt anzuwählen. 

Nutzung in PRESTO 
 
Im Gegensatz zu APAC oder alcarta hat PRESTO keine Menüunterstützung. Die Nutzung der Restriktionen unter PRESTO ist daher nicht benutzerfreundlich, jedoch möglich. Man muß die Positionen der .RES oder .STL und ihre Bedeutung kennen. (Viel einfacher machen es die Windows-Programme a99/alcarta, siehe übernächste Seite.) 
Auf dem Registerbildschirm von PRESTO drückt man : 
 
F9	Dann wird die gewünschte Restriktion abgefragt. Die Frage lautet 
 	Pos >=< Value? 
	Man muß den Wunsch dann explizit eingeben, d.h. eine Position, einen Operator und einen Wert, z.B. 
 
	r1>1990		Vergleich ab Position 1 in .RES, Wert soll >1990 sein 
 
	s58<1950	Vergleich ab Pos. 58 in .STL, Wert soll < 1950 sein 
 
	s58=1997	Auf Position 58 in der .STL soll 1997 stehen- 
 
	s68!XYZ		Auf Position 68 in der .STL soll nicht XYZ stehen 
 
	0			Rücksetzen (Restriktion aufheben) 
 
Der versierte PRESTO-Anwender kann hier auch s-Positionen nutzen, die nicht in einer R-Zeile definiert sind! 
Der durchgeführte Vergleich ist immer ein Zeichenvergleich, kein Zahlenvergleich, auch wenn auf der fraglichen Position Zahlen stehen. Die Anzahl der zu vergleichenden Zeichen ergibt sich aus der Eingabe, z.B. 4 wenn man r1>1990 eingegeben hat, d.h. nachfolgende Zeichen in der .RES oder .STL haben keinen Einfluß. 
Nachdem mit F9 eine Restriktion gesetzt wurde, wirkt sie sich auf alle nachfolgenden Funktionen (+ / -) zur Ergebnismengenbildung aus. Wenn man also '/' drückt, werden nur diejenigen Sätze in die Ergebnismenge genommen, die der Restriktion genügen. Für den Anzeigebildschirm gilt das nicht, und zwar aus gutem Grund: wenn man einen einzelnen Satz auf dem Schirm hat, entscheidet man sich wohl ganz bewußt dafür, ihn in die Ergebnismenge aufzunehmen, und das sollte das Programm dann nicht verhindern. 
Zu einem Zeitpunkt kann immer nur eine Restriktion gesetzt sein. 
Wenn nichts gesetzt oder die Setzung mit '0' wieder aufgehoben ist, funktioniert alles normal wie gewohnt. 
Wenn man eine Ergebnismenge gebildet hat, kann nachträglich eine Restriktion durchgeführt werden. Sie muß dann, nach der Setzung mit F9, durch Strg+F9 auf die bestehende Ergebnismenge angewendet werden. So kann man nacheinander die Ergebnismenge durch zwei oder mehr verschiedene Restriktionen verkleinern, d.h. jeweils mit F9 und Strg+F9 unterschiedliche Aktionen durchführen. 
Hilfestellung: In PRESTO erhält man auf dem Anzeigeschirm mit Alt+F7 die vorhandenen Restriktionen angezeigt: es erscheinen die R-Zeilen aus den Indexparametern. 
 
Und wie sieht es im DOS-OPAC aus? 
Das Programm APAC macht es dem Nutzer leicht: es erscheint ein Menüpunkt "Einschränkungen" im Indexmenü (Achtung: die Dateien UIFA... wurden dafür um einige Zeilen ergänzt). Man bekommt eine Eingabemaske mit drei Zeilen: Auswahl der Restriktion, des Operators, und Eingabe des gewünschten Wertes. Die ersten zwei erlauben per Hilfemenü nur die sinnvollen Werte (die sich aus den R-Befehlen ergeben). 
 
Angenommen, wir haben vier Restriktionen und dafür in der CAT.API diese Hilfezeilen: 
 
R ERJ r1 "Erscheinungsjahr?Einschränkung auf einen Zeitraum" 
R TYP r5 "Typ?z.B. ho=Dissertation af=Aufsatzsammlung" 
R FGR r7 "Fachgruppe?z.B. ma=Mathematik, py=Physik" 
R TAB s1 "Titel-Anfangsbuchstabe?z.B. G, wenn die Titel mit G anfangen sollen" 
 
APAC liefert uns dann auf dem Registerbildschirm über den Menüpunkt "Suche einschränken" dieses Bild: 
 
Register 1 : Namen von Personen 
   1   schwarze, wolfgang                 +----------INDEX-Funktionen----------+ 
  30==>shakespeare, william               ¦ Zugriff auf Titel                  ¦ 
   1   shakespeare, william #             ¦ Register-Erweiterung ein/aus       ¦ 
  43   shakespeare, william *             ¦ Kurzliste der Ergebnisse ein/aus   ¦ 
   4   shakespeare, william - DRAMATISCHE ¦ Andere Stelle im selben Register   ¦ 
   4   shakespeare, william / bibliographi¦ H : Hilfe zum Register             ¦ 
   7   shakespeare, william / biographie  ¦ 1 : Namensregister                 ¦ 
  11   shakespeare, william / drama       ¦ 2 : Körp.Reg.                      ¦ 
   1   shakespeare, william / drittes reic¦ 3 : Wortregister                   ¦ 
   8   shakespeare, william / festschrift ¦ 4 : Titelregister                  ¦ 
   1   shakespeare, william / henry iv    ¦ 5 : Zeitschriften- und Serientitel ¦ 
   1   shakespeare, william / henry v     ¦ 6 : Verlage/Orte                   ¦ 
   2   shakespeare, william / imagery     ¦ 7 : Sachgruppen                    ¦ 
   2   sha+---------- Einschränkung     [F10] = ok -----------+                ¦ 
   1   sha¦Suche einschränken                                 ¦                ¦ 
   4   sha¦        und zwar:   +-----------------------------+¦lten            ¦ 
   2   sha¦gewünschter Wert    ¦ 1 : Erscheinungsjahr        ¦¦nge hinzufügen  ¦ 
   1   sha+--------------------¦ 2 : Typ                     ¦#lden            ¦ 
   1   shakespeare, william / n¦ 3 : Fachgruppe              ¦Menge rausnehmen ¦ 
   5   shakespeare, william / r¦ 4 : Titel-Anfangsbuchstaben ¦setzen           ¦ 
   1   shakespeare, william / r+-----------------------------+                 ¦ 
                                          ¦ Verknüpfungen berücksichtigen      ¦ 
Andere Stelle? Suchwort eintippen.    <Sh+¦ Suche einschränken                 ¦ 
Einschränkung auf einen Zeitraum          ¦ x : Ausstieg    F10 = Einschr. aus ¦ 
                                          +------------------------------------# 
 
In der Menüzeile "und zwar:" hat man die Wahl zwischen den vier Vergleichsfunktionen < > ! und =. 
Wenn man "Erscheinungsjahr" gewählt hat, sieht das dann so aus: 
 
   2   sha+---------- Einschränkung     [F10] = ok -----------+                
   1   sha¦Suche einschränken  1 : Erscheinungsjahr           ¦                
   4   sha¦        und zwar:                                  ¦lten            
   2   sha¦gewünschter Wert    +---------------+              ¦nge hinzufügen  
   1   sha+--------------------¦ >   Größer    ¦--------------#lden            
   1   shakespeare, william / n¦ <   Kleiner   ¦Titel aus Erg.Menge rausnehmen 
   5   shakespeare, william / r¦ =   Gleich    ¦bnismenge rücksetzen           
   1   shakespeare, william / r¦ !   Ungleich  ¦nüpfungen berücksichtigen      
   4   shakespeare, william / s+---------------+e einschränken                 

Unter "gewünschter Wert" gibt man schließlich den Begriff ein, der für die Restriktion verwendet werden soll, also z.B. eine Jahreszahl. Mit [F10] wird die Restriktion dann dem Programm übergeben. 
Wenn der Leuchtbalken auf "gewünschter Wert" steht, sieht man unten einen Hinweis " >>> F1 = Hilfe <<<". Damit aber Hilfe kommt, muß man eine Hilfeseite haben. Diese Seiten müssen HRES1, HRES2 usw. heißen, d.h. für jede der Restriktionen kann man eine spezifische Hilfeseite einrichten. Am besten legt man diese Seiten in das Datenverzeichnis, denn in der Regel werden sie datenbankspezifisch sein. 
 
Besonderheiten 
Wenn zum Zeitpunkt dieser Menüauswahl schon eine Ergebnismenge besteht, wird diese gleich anschließend der gewählten Restriktion unterzogen, also verkleinert. Vermutlich ist dies genau das, was der OPAC-Benutzer erwartet. Der PRESTO-Benutzer muß Strg+F9 drücken, um die Restriktion ausführen zu lassen. Die eingeschaltete Restriktion wirkt sich dann aber auf alle nachfolgende Operationen aus, bis man eine andere einstellt oder sie vom Indexmenü mit F10 wieder aufhebt. In der vorletzten Zeile unten rechts wird die eingestellte Restriktion angezeigt, auch unter PRESTO. 
Der Systemverwalter hat die Möglichkeit, die Restriktionen auf unterschiedliche Art in APAC zu implementieren: 
 
Die Restriktionen mit 'R' oder 'S' (statt 'r' oder 's') haben eine etwas andere Wirkung: VOR Anwendung der Restriktion wird die Ergebnismenge expandiert (siehe "Satzübergreifende Suche" in Kap.10.2.6.9), d.h. als ob man zuerst '&' drücken würde. Außerdem wird die Restriktion nach einmaliger Anwendung wieder abgeschaltet. Beim OPAC muß man ja bedenken, daß ein Nutzer jederzeit das Gerät verlassen kann. Der nächste kommt und bemerkt gar nicht die eingeschaltete Restriktion, aber wundert sich dann natürlich über die Ergebnisse, die er bekommt oder eben nicht bekommt. 
 
Abschalten der Restriktion 
Auf dem ESC-Menü des Registerschirms gibt es den Hinweis:  F10 : Einschr. aus. 
Zusätzlich kann die eingeschaltete Restriktion in APAC und PRESTO auch mit der Rücktaste [×--] abgeschaltet werden. 
 
a99 und alcarta : Die Restriktionen findet man auf dem Find-Menü wieder, unterhalb der Zeilen für die Suchbegriffe: [Drücken Sie auf [Find], dann sehen Sie es] 
 
10.3	Testen und Optimieren 
 
10.3.1	Direkte Änderung von Parametern 
Wenn man eine Parameterdatei neu erstellt, gelingt es höchst selten, sofort das richtige Ergebnis zu erzielen. Deshalb wurde eine Möglichkeit geschaffen, die Parameter während des Testens vom Editor aus zu ändern. Bis auf die Exportbefehle in der Kategorieliste (-Ø 10.2.6.1) können alle Parameter über den Befehl #p geändert werden:  Soll z.B. eine andere Zeilenänge getestet werden, so gebe man einfach den Befehl #pzl=60, um die Zeilenlänge z.B. auf 60 Zeichen umzustellen. Will man Zwischenteil 26 ändern: #p26=... eingeben mit der gewünschten Steuerzeichenkette hinter dem '=' . 
Möchte man eine Druckercodierung ändern: z.B. definiert #pp Ä "Ae" die Ersatzdarstellung "Ae" für das Ä. 
Allgemein: man schreibt im Erfassungsmodus hinter das #p die Parameterangabe in der oben in diesem Kapitel beschriebenen Form und gibt dies als Befehl ein. Sofort wird der betreffende Parameter geändert (allerdings nur im Arbeitsspeicher für die Dauer der Sitzung, nicht in der Parameterdatei!) und kann mit dem Befehl #d getestet werden. Wenn man auf diese Weise die optimalen Werte ermittelt hat, muß man schließlich noch die Parameterdatei selbst entsprechend verändern. 
Nicht möglich ist die direkte Änderung der ak-Liste (-Ø 10.2.1) und der Kategorieliste (-Ø 10.2.6). Eingabe entsprechender Befehle würde eine Ergänzung (Verlängerung) dieser Listen bewirken, keine Änderung. 

10.3.2	Mehrere Parameterdateien gleichzeitig 
Es ist möglich, bis zu 3 Parameterdateien (Sätze), im Programm SRCH sogar 4, gleichzeitig zu laden und abwechselnd zu benutzen. 
Automatisch wird immer D-1.cPR geladen, wenn man nicht per Option -p eine andere wählt (s. Kap.12). Im Editor gibt man zum Laden weiterer Parameter den Befehl #p, wählt dann den Unterpunkt 'e' und kreuzt in der Auswahlliste den Namen, z.B. P-NORMAL.APR, der nachzuladenden Datei an. Wenn mehr als eine Parameterdatei geladen ist, schaltet man zwischen denselben um, indem man F2 oder den Befehl #d (ohne Kategorienummer) gibt und auf dem dann erscheinenden Menü die betreffende Ziffer wählt. Der nächste Druckbefehl, z.B. #d40 , benutzt dann die ausgewählten Parameter. Benutzen Sie den Parameter dn (-Ø 10.2.4) als Gedächtnisstütze. 
Diese Möglichkeit ist günstig, wenn man z.B. mehrere Versionen einer Parameterdatei nebeneinander testen will. Man macht auch davon Gebrauch, wenn das Suchprogramm (-Ø Kap.8) mehrere Exporte mit unterschiedlicher Struktur gleichzeitig erstellen soll. Die Option -e ist deshalb bei diesem Programm wiederholbar (-Ø Kap.12). 
Die Befehle zur direkten Änderung von Parametern (siehe oben) wirken sich jeweils nur auf das gerade angewählte Set (die gerade aktive Parameterdatei) aus. 

10.3.3	Export-Parameterdatei visuell testen 
0.	Nehmen wir an, die zu testende Datei XYZ.APR befindet sich auf dem Programmverzeichnis. Es wird vom CockPit aus gestartet und die Datenbank CAT auf C:\ALLEGRO\KATALOG benutzt. 
1.	Beliebigen Datensatz aufblättern, auf dem ANZEIGEbildschirm  F2 F2 F2  drücken. Dann hat man die Auswahlliste der Parameterdateien vor sich, die auf dem Programmverzeichnis stehen. 
2.	Die Datei XYZ.APR mit '+' markieren, <Enter> drücken: jetzt wird sie geladen und sofort als Anzeige-Parameterdatei benutzt, auch wenn sie gar nicht für eine Bildschirmanzeige gedacht ist! D.h. der aktuelle Datensatz wird gleich mit Hilfe dieser Parameterdatei aufbereitet und neu angezeigt. (Wenn nicht: in CP.OPT ist im Abschnitt für PRESTO eine Eintragung für eine Druck-Parameterdatei vorhanden; diese Zeile beginnt mit q und entspricht der Aufruf-Option -q von PRESTO. Man macht die q-Zeile ungültig, dann geht es.) 
3.	Verschiedene Arten von Datensätzen aufsuchen und die Anzeigeform begutachten. Abweichungen von der gewünschten Form notieren. 
	Tip: Wenn ak-Befehle in den Parametern vorkommen, dann sieht man mit F3 die unterschiedlichen Ausgabesätze alle hintereinander, jeweils mit Leertaste kommt der nächste. 
4.	Zum CockPit zurück, dann über μd e die getestete Datei wieder anwählen und bearbeiten. Änderungen ausführen. Zurück zur Datenbankbenutzung ==> 1. 
 
Für Experten: die "Allers'sche Testschleife" 
Dies ist eine noch schnellere, aber auch sehr flexible Methode für intensives Testen, benannt nach ihrem Erfinder Heinrich Allers.  
Man stellt eine Batchdatei TESTAPR.BAT nach folgendem Schema zusammen: 
:START 
presto -f1 -a3 -n1 -S -dC:\ALLEGRO\KATALOG -p %%1 
pause 
x %%1.APR 
goto START 
und gibt dann den Befehl  testapr xyz 
In dieser schlichten Endlosschleife wird jeweils die Datenbank gestartet, und zwar mit XYZ.APR als Anzeige-Parameterdatei (statt der standardmäßigen D-1.APR), so daß man diese dann gar nicht erst mit F2 ... laden muß. Verläßt man die Datenbank, wird der Editor aufgerufen, um die Parameterdatei sofort wieder bearbeiten zu können. Der Befehl pause ermöglicht einen Abbruch der Endlosschleife mit Strg+c.  
Wenn man in den EDITORzustand geht, kann man mit Befehl #a die Anwendervariablen kontrollieren. 
Die Testschleife läßt sich universell für alle .APR-Dateien verwenden. Der Aufruf  testapr abc  ermöglicht jederzeit den Test jeder beliebigen Parameterdatei ABC.APR.  
 
"Merseburger Testschleife" 
Mit PRESTO gibt es eine noch schnellere Testmethode: in der Titelanzeige F2 F2 geben (evtl. nochmal F2), die zu testende Parameterdatei mit dem Cursor anwählen, F10 drücken: dann wird der X-Editor aufgerufen und die Parameterdatei zur Bearbeitung geladen (-Ø Anh.D, in 2 Minuten lernbar)! Man ändert etwas, speichert mit <Esc> q s, gelangt zurück in die Auswahlliste, drückt '+' <Enter>, und die Parameterdatei wird geladen und für die Anzeige benutzt, man sieht also das Resultat der Änderungen. Das läßt sich beliebig wiederholen. 
Aber: beim PRESTO-Aufruf darf weder -q noch -e als Option gegeben werden, sonst klappt es nicht.  
 
Soll der Test mit SRCH laufen, ersetzt man den PRESTO-Aufruf durch einen SRCH-Aufruf: 
 
:START 
srch -f4 -n1 -dC:\ALLEGRO\KATALOG -e %%1/testlist -s0 -m0 -v0 
v testlist               (Ergebnisdatei testlist anzeigen) 
pause 
x %%1.APR 
goto START 
 
Durch  v testlist  wird dann die Ergebnisdatei angezeigt, bevor man wieder in die Bearbeitung der Parameterdatei kommt. Ein Trick: mit Druck auf 'x' kann man jederzeit den SRCH-Lauf abbrechen. Man kommt in den EDITOR und kann sich die zuletzt geladene Aufnahme ansehen. Mit Befehl #Da sieht man das Exportergebnis auf dem Bildschirm. Mit dem Befehl #a kann man evtl. vorhandene Anwendervariablen kontrollieren, die von den Exportparametern erzeugt werden! Mit #e bricht man den SRCH-Lauf ab und die Schleife geht weiter. 
 
So testet man eine Index-Parameterdatei: 
Das ist sehr einfach; man braucht auf keinen Fall erst neu zu indexieren, sondern: 
 
0.	Nehmen wir an, ABC.API liegt auf dem Programmverzeichnis und soll getestet werden. Die aktuelle Parameterdatei unserer Datenbank heißt CAT.API (d.h. wir haben eine Datenbank namens CAT) und liegt auf dem Verzeichnis C:\ALLEGRO\KATALOG. 
 
1. 	CAT.API umbenennen z.B. in CAT.XXX, ABC.API umbenennen in CAT.API. Anschließend "denkt" dann PRESTO, dieses sei die richtige Index-Parameterdatei und benutzt sie. 
 
2.	Datenbank starten, Datensätze aufblättern, jeweils F7 drücken. Dann sieht man die Liste der durch ABC.API erzeugten Schlüssel. Abweichungen von der gewünschten Form notieren. 
 
3.	Mit F8 zum CockPit zurück, dann über μd i die getestete Datei wieder anwählen und bearbeiten. Änderungen ausführen. Zurück zur Datenbankbenutzung ==> 2. 
 
Um das CockPit zu umgehen, damit's noch etwas schneller wird, kann man sich auch hier eine "Allers'sche Testschleife" anlegen, nennen wir sie TESTAPI.BAT : 
 
:START 
presto -f1 -a3 -n1 -S -dC:\ALLEGRO\KATALOG   (Datenbank wird aufgerufen, Test mit F7) 
pause 
x CAT.API		(Parameterdatei bearbeiten) 
goto START 
 
Dieses kleine Programm schaltet ständig zwischen der Benutzung der Datenbank und der Bearbeitung der CAT.API hin und her. Man steigt aus der Schleife aus, indem man nach Verlassen der Datenbank <Strg>+c drückt. 
Man muß auch hierfür vorher die Parameterdateien umbenennen, wie oben unter 1. beschrieben, denn PRESTO setzt voraus, daß der Name der Index-Parameterdatei identisch mit dem der Datenbank ist. Meistens wird man aber Veränderungen an der schon existierenden Parameterdatei einer Datenbank testen wollen, und dann entfällt dieser Schritt. 

10.3.4	Export- und Index-Parameter optimieren 
 
Kann man Zugriffe und Funktionen schneller machen? Wie spart man Speicherplatz? Wie kann ich als Systemverwalter Zeit sparen und die Übersicht behalten? 
Je größer und zahlreicher die Datenbanken werden, umso drängender werden diese Fragen. Aus den vorliegenden Erfahrungen ergeben sich eine Reihe von praktischen Tips. 
 
A. Zeitökonomie des Systemverwalters 
Die eigene Zeit sollte und wird ein Systemverwalter im Zweifel höher bewerten als die Zeit, die seine Maschinen für ihre Aufgaben benötigen. Mühe darauf zu verwenden, daß ein Computer Zeit spart, scheint vielleicht manchem schon pervers. Jedoch - beliebigen "Overhead" in Kauf zu nehmen, nur um sich jedes Nachdenken (und jede Lernanstrengung) zu ersparen, das ist das andere Extrem und führt zu grober Ineffizienz und zu einem Schießen mit Kanonen auf Mücken. Solches passiert laufend in der Windows-Welt. 
Hat man mehrere Datenbanken zu verwalten, sollte man danach streben, die Unterschiede gering zu halten. Erstens behält man besser die Übersicht, zweitens kann man die zeitaufwendigen Parameterdateien mehrfach verwenden. Also: gleiches Schema, gleiche Feldstrukturen für möglichst alle Datenbanken anstreben. Die konsolidierte Konfiguration $A.CFG deckt so ziemlich alles ab, was man für bibliographische Datenbanken braucht... 
Insbesondere die Exportparameterdateien vermehren sich leicht. Damit die Übersicht nicht verloren geht, teilt man sie am besten in Typen ein, wie es Kap. 10.0 empfiehlt, und man orientiert sich für ihre Gestaltung an den Prototypen. Beim Zugriff über CockPit hat man so immer alles hübsch beisammen. Abschnitte, die sich in mehreren Parameterdateien wiederholen, packt man in .APT-Dateien und lädt diese bei Bedarf an den richtigen Stellen hinzu (-Ø 10.2 : Nachladebefehl t) . 
 
Auch Batchdateien sind vermehrungsfreudig. Wenn mehrere Produktionsläufe nach demselben Schema ablaufen, nur mit unterschiedlichen Parameterdateien, kann man u.U. mit einer einzigen Batchdatei auskommen und immer vorher die jeweils gewünschten Parameterdateien auf einen immer gleichen Namen umkopieren. So macht es CockPit für die Listenproduktionen. Es kommt daher mit nur vier Batchdateien aus: SR-LIST.BAT und PR-LIST.BAT, QUEX.BAT und QUANT.BAT. Mehr dazu im Kap.6. 
 
B. Zeitbedarf des Rechners (für das Speichern und Indexieren) 
Das A und O einer schnellen Datenbank ist die Index-Parameterdatei. Durch Optimierung sind manchmal erstaunliche Steigerungen erreichbar. Folgende Tips, nach Wirksamkeit geordnet, helfen dabei: 
•	Globale Ersetzungen vermeiden. Besonders: Einzelzeichen immer mit p- und q-Befehlen umcodieren, denn z.B. der Befehl  p ä "ae"  ist erheblich schneller als  _ä_ae_ ! 
•	Anzahl der ak-Befehle gering halten. Oft kann man mehrere zu einem "Sprungverteiler" zusammenfassen. Wenn man z.B.  ak=10+A 11+B 12+C  hat, kann man das ersetzen durch 
	ak=1.+A 
		und dann in der Kategorieliste: 
	#-A    #ch ist die momentan vom ak-Befehl ausgewählte Kategorie. Ihr zweites zeichen wird untersucht: 
	#ch +B i2,1 e0    (wenn es #11 ist, gehe nach #-B) 
	#ch +C i2,2 e0    (wenn #12, dann #-C) 
	#ch +- I2,0 e0    (wenn es nicht die #10 ist, keine Aktion) 
	...	(wenn es #10 ist, geht es also hier weiter) 
	#+# 
	#-B   (hier wird #11 behandelt)  ... 
•	Zum selben Thema kann man noch etwas anderes tun: gleichartige Kategorien zu einer Anwendervariable zusammenfassen. Sind z.B. #130, #240, #245, und #730 alle in Stichwörter zu zerlegen, also auf dieselbe Art zu indexieren, braucht man nicht vier ak-Befehle dafür, sondern man kann mit einem auskommen: in dem Abschnitt, wo der Primärschlüssel bearbeitet wird, fügt man noch einige Zeilen hinzu, um die genannten Kategorien zusammenzufassen: 
	#u1 dts e0		Die Hilfsvariable #uts wird gelöscht 
	#130 ats			der Inhalt von #130 wird hineinkopiert 
	#245 p" " Ats		#245 wird, mit Leerzeichen davor, hinten angehängt 
	#240 p" " Ats		dasselbe passiert mit #240 und #730 
	#730 p" " Ats 
	Dann genügt ak=uts" "+C , um alle vier zu indexieren, denn sie stehen nun alle hintereinander, mit Leerzeichen getrennt, in #uts. Dieser Befehl kommt erst an die Reihe, nachdem der  Primärschlüssel schon bearbeitet wurde, also steht die #uts dann auch bereit. [Bis Version 12.2 konnte man keine #u-Variablen in ak-Befehlen ansprechen!] 
•	Mit einem ak-Befehl kann man mehrere Schlüssel erzeugen: dazu muß man die einzelnen Schlüssel mit dem Code 8 trennen, also z.B. den Befehl #t{ 8 } dazwischen setzen. Achtung: in solchen Schlüsseln kann man nicht mit den Strukturbefehlen arbeiten, vor allem nicht mit dem Tabulatorsprung &i.  Dafür muß man sich etwas anderes einfallen lassen.
•	Innerhalb der Kategorieliste ersetzt man die bedingten Sprünge +M durch Sprünge der Form +#nnn , evtl. mit einer sonst nicht benutzten Kategorienummer, die dann nur als Sprungmarke dient. In der CAT.API können Sie dieses Verfahren ausführlich studieren. Dort wird meist #39x als Sprungmarke verwendet, mit unterschiedlichen Buchstaben 'x' . (Aber: unbedingte Sprünge #+#nnn statt #+M gehen noch nicht!) 
•	Die meistgebrauchten Abschnitte der Kategorieliste nach oben verlagern. Wenn also z.B. #-C der Abschnitt für die Titelstichwörter ist, setze man diesen Abschnitt an den Anfang der Kategorieliste. 
 
C. Speicherbedarf 
Man hört zuweilen die Ansicht, man brauche hier nicht mehr über Einsparungen nachzugrübeln, weil Platten fast nichts mehr kosten und schon nächste Woche wahrscheinlich noch billiger werden. Bibliotheksbestände wachsen aber unablässig, und eine Art Parkinsonsches Gesetz besagt, daß jede Platte voll wird, und zwar schneller, als man denkt. Nun geht allegro mit dem Speicherplatz schon "von Natur aus" sparsam um, und vom CockPit aus hat man bequeme Funktionen zum Wiedergewinnen von Platz (µr o c und µr o R), aber ein paar kleine Maßnahmen können weitere Einsparungen bewirken: 
•	Beim Datenbank-Neuentwurf nicht unnötig viele Kategorienummern definieren, sondern zusammengehörige Elemente in eine Kategorie packen, mit Teilfeldtrennung durch das Zeichen ? 
•	Die Anzahl der Füllzeichen (s. Anh. A) nicht zu hoch ansetzen - oder auf Null setzen und dann immer mal "entlüften". 
•	Die Länge der .STL-Einträge evtl. unter 72 setzen (Befehl i0=72 reduzieren). 
•	Allzu üppige Registereinträge mit Bedacht einsetzen. Besonders schlagen solche zu Buche, die hinter dem eigentlichen Eintrag noch Zusätze enthalten. 
 
 `Vorangehender Teil`    /    `Fortsetzung`  
 
?Vorangehender Teil=h ac10-11 
?Fortsetzung=h ac10-13