[Allegro] Indexparameter cat.api modernisieren?

Bernhard Eversberg ev at biblio.tu-bs.de
Fr Jul 23 08:31:46 CEST 2010


Thomas Berger schrieb:
> 
> ... Ein alter Admin-Traum ist ja, solche
> "orthogonalen" Erweiterungen (also hier: zusaetzliche, *unabhaengige*)
> Schluessel ganz ohne zusaetzlichen Eingriff in das Monster cat.api
> bewerkstelligen zu koennen.
> ... 
> Wie waere es mit folgendem Mechanismus:...

> - - Nach dem Einlesen einer Parameterdatei wird geschaut, ob es noch
>   weitere Dateien mit ~abgeleitetem~ Namen gibt (bzw. ein tolerantes
>   Include-Statement bzw. eine "Ueber"-Parameterdatei listet mehrere
>   einzulesende Dateien")
> - - Diese weiteren Parameterdateien - sofern vorhanden! - werden
>   eingelesen, dabei werden allerdings globale Sprungmarken- und
>   Unterprogramm-Konflikte automatisch aufgeloest, ...

Gut gedacht, ok, aber das tangiert unser aktuelles Problem ja nur
indirekt am Rande, ohne schon zur Lösung beizutragen.
Wir müssen zunächst innerhalb der Grenzen des real und zeitnah
Machbaren denken.

In diesem Fall kommt ein 5-Punkte-Plan raus:

1. Man sammelt innerhalb der Parameterdatei nebenbei alle jene
    Felder ein, die in den ALL-Index sollen. Das geschieht in
    all jenen Abschnitten, wo die relevanten Felder verarbeitet
    werden, z.B. #-G, wo alle Titel für Reg. 4 drankommen, oder
    #-B, wo es um die Personen geht.
    Da kommt jeweils diese Zeile hin:
    #u1 u p" " AGR e0
    Die Variable #uGR wird so zum Sammelplatz aller jener Felder.
    Es sind, wenn ich recht sehe, nicht mehr als 10 Stellen, wo
    diese neue Zeile rein müßte.

2. Nur eine einzige neue ak-Zeile wird gebraucht, und die lautet so:
    ak=uGR"[ -/]"+z
    Sie kommt unterhalb all jener ak-Zeilen, die zum Sammeln relevant
    sind. Schaltet man diese Zeile aus, passiert einfach nichts, sondern
    es entsteht der Index genau wie bisher, ohne ALL-Register.

3. Unter die Sprungmarke #-0 kommt noch diese wichtige Zeile:
    #nr dGR e0
    Sie löscht, beginnt ein neuer Satz, das Sammelfeld des vorigen.

4. Bei der (neuen) Sprungmarke #-z steht nur
    #-z
    !u1 y2 e"_" f"&[(<" F"&])>,.;:?!" p"~e1"
    #+#

5. In die Liste der symbolischen Register muß noch diese Zeile:
    I ALL e1 "ALL-Wortregister"

Und damit entsteht ein Index  cat.aex  mit nur einem Register, eben dem
ALL-Register.
Ganz genauso kann man es mit anderen Indexparametern machen!

Dazu wird noch der FLEX onfnda99.flx (und onfndalc.flx) so eingerichtet,
daß er diesen Index benutzt. Auch dies wäre unabhängig von cat.api und
würde mit anderem Schema genauso gehen.

Fortan gibt man in die Suchbefehlszeile einfach nur
   Wolfgang Göthe    oder    Kritik der reinen Vernunft
und voilà!
onfnda99.flx würfe das "der" als Stopwort raus, verknüpfte aber
ansonsten automatisch alle eingegebenen Wörter mit AND.
(Ganz klar, die Kehrseite der ALL-Technik ist, daß bei halbwegs
häufigen Wörtern die Precision leidet. Das jedoch ist jedem
von Google her wohlvertraut und hier nicht das Thema.)

Wir gehen dann mal an die Umsetzung. Spätestens nächste Woche wird das
erledigt sein, samt Härtetest mit einer Großbank.
Es liegt insgesamt weit innerhalb der Grenzen des real Machbaren,
wenngleich ein "tolerantes include" strategisch natürlich weit
besser wäre...

B.E.





Mehr Informationen über die Mailingliste Allegro