[Allegro] Avanti: Abfragelogik/Klammersetzung

Thomas Berger ThB at Gymel.com
Do Feb 28 11:06:41 CET 2008


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Lieber Herr Eversberg, lieber Herr Eger,

|> Ja, dadurch wird die Anwendung aber kompliziert. Wenn ich standardmäßig
|> die Exemplarsätze in die satzübergreifende Suche einbeziehe, habe ich
|> die Exemplarsätze in jeder Ergebnismenge dabei, in der der Anwender
|> nur Titelsätze erwartet. Um diese Suche also allgemein anwendbar
|> werden zu lassen, wäre m.E. ein automatischer Filter auf die Satzart
|> oder ein anderes (evtl. bei der Suche?) zu definierendes Merkmal des
|> Satzes wünschenswert.
|>
| Wer soll das denn verstehen? Können Sie das nicht mal plastisch auf
| den Punkt bringen?

Es handelt sich um ein recht typisches Problem, ich betreue z.B.
auch eine Anwendung, wo (damit Aufnahmen nicht ueberlaufen)
Sacherschliessung einerseits in Bandauffuehrungen ausgelagert ist
und andererseits stets nur Hauptaufnahmen gezeigt werden sollen.

Hier benoetigt man eine Art umgekehrte SR-Expansion, statt eine
Ergebnismenge auszuweiten um das Resultat mit der anderen
Ergebnismenge logisch zu verknuepfen, also das Hinzunehmen (oder
gar austauschen durch) nur des Uebergeordneten mit anschliessender
Verknuepfung.

Programmatisch ist da nichts zu machen, ich behelfe mich dann
mit normaler SR-Expansion und anschliessendem Anwenden eines
"Filters" auf das Ergebnis: Die Ergebnismenge wird mit einer
Parameterdatei "ausgegeben", die zu jedem Satz die interne Satznummer
des "eigentlich" benoetigten (uebergeordneten) Satz ausspuckt,
analog den PRESTO-Ergebnismengen bei a99. Der steuernde Prozess
sammelt dieses Ergebnis ein, reduziert die Dubletten und konstruiert
einen Folgejob fuer Avanti, der ein (bzw. mehrere: Auf Zeilenlaengen
achten!) gewaltiges
find # nnn,nnn,nnn....
enthaelt und dann mit Sortierungen und Ausgabe etc. fortfaehrt.

Hier werden Saetze also mehrfach ermittelt und mehrere Avanti-Jobs
ausgefuehrt, da ist also noch gewaltig Optimierungspotential drin.

Ich koennte mir vorstellen, dass ein recht allgemeines "filter"-Kommando
fuer die Flex-Sprache eingefuehrt werden koennte:

filter "Sprungmarke"
(Sprungmarke bezieht sich auf eine Sprungmarke in den jeweils
aktuelle geladenen Exportparametern, oder hat avanti die nicht?)

bzw.

filter "Label"
bezieht sich dann auf ein Unterprogramm im aktuellen Job,
wenn man flexgesteuert umfiltern will (hier ist noch zu
klaeren, ob es sinnvoller ist, das Unterprogramm Satz fuer
Satz aufzurufen und jeweils das Ergebnis einzusammeln, oder
ob es selber programmatisch durch die Ergebnismenge haspeln
soll und - in Analogie zu set obj1 / set obj2 - die Ziel-
Ergebnismenge selbst zusammenbauen darf).

viele Gruesse
Thomas Berger

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.3-nr1 (Windows XP)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org

iQCVAwUBR8aHsWITJZieluOzAQLlEgP/Uv0bvmWhR2WXgzhe4gw56ET9jbOSLuWF
K+UhubewneXweiRCVkyfzMzFsb4hRtwcJZmt6PvKhGGHPk89qckThxV258iD8ljU
gcpWbzLBMemgbwXTiQKMXwWl4Owu5hz5zHVGngdHnO/lIWw20QYkIT7PMj65KG0G
hmlcTBKIboc=
=16Ts
-----END PGP SIGNATURE-----



Mehr Informationen über die Mailingliste Allegro