Vb.61: Universelle Auswertung
Bernhard Eversberg
EV at buch.biblio.etc.tu-bs.de
Mo Mär 18 12:16:59 CET 1996
Verlautbarung 61 der Entwicklungsabteilung
----------------
Universelle Auswertungsmethodik FTP file:
------------------------------- param/auswert.lzh
"Im Prinzip geht das mit 'allegro', man muesste NUR ein paar Parameter-
dateien schreiben..."
Wer kennt die Situation nicht, wo man instinktiv weiss, dass eine Aufgabe
mit "allegro" im Prinzip zu loesen ist - aber in der Praxis fehlt einem
die Zeit, es zu parametrieren. Statistische Auswertungen fallen in diesen
Bereich. Neben dem Aufgabenbereich der rechnerischen Auswertungen (Export-
typ R) gibt es die zahlenmaessigen Auswertungen von Kategorieinhalten.
Nur um diese soll es hier gehen. Die typische Situation ist doch, dass der
Chef ruft: "Schnell, Frau Schneckler, ich brauche eine Liste der am meisten
vergebenen Signaturgruppen!" oder: "Ich muss wissen, welche 20 Komponisten
in unserer Musikdatenbank am haeufigsten vertreten sind!"
Was dann? Dem Mann erzaehlen, dass das nicht so einfach ist?
Versuchen kann man, wenn das auzuwertende Kriterium indexiert ist,
im Register geeignet zu trunkieren und mit <Strg>+F10 dann einen
negativen Schwellenwert einzustellen. Nicht immer kommt man so zum Ziel.
Im Namensregister z.B. sieht man i.d.R. nicht, ob eine Person Komponist
oder sonst etwas ist.
Bisher wurde mit dem Exporttyp C und der Stapeldatei COUNT.BAT
nur das minimalste Gerippe fuer solche Auswertungen angeboten. Deshalb
wurden schon vielerorts eigene Parameter entwickelt - oder eben nicht,
weil die Zeit nicht reichte, und wichtige Fragen blieben unbeantwortet.
Das soll ein Ende haben.
Verwandt mit dieser Thematik ist die von H. Allers erfundene Kategorien-
besetzungsstatistik, die ja sogar als Spezialregister angelegt und dann
staendig online benutzt werden kann. Fuer manche Zwecke ist das ok oder
sogar ausserordentlich hilfreich, aber es gibt drei Nachteile:
-- Die Registereintraege sind alphabetisch geordnet, nicht nach der
Haeufigkeit
-- Es ist viel "Overhead" damit verbunden (Platz, Indexierzeit)
-- Mehrfach besetzte Kategorien erschweren den Ueberblick oder machen
ihn unmoeglich.
Das Ziel war, eine universelle Methodik zu entwickeln, und zwar
o beliebige Kategorien sollen auswertbar sein, auch mehrere verschiedene
in einem Durchlauf
o Mehrfachbesetzungen innerhalb einer Kategorie sollen zerlegt werden
koennen,
o oder wahlweise nur der Anfangsteil einer Kategorie beruecksichtigt
werden, bis zu einem bestimmten Trennzeichen.
o Als Ergebnis soll auch eine nach Haeufigkeit geordnete Liste moeglich sein.
o Schwellenwerte sollen vorgebbar sein ("nur Faelle mit mindestens N
oder hoechstens M Eintraegen sollen in der Liste stehen")
(D.h. nur die ganz grossen oder die ganz kleinen Werte, oder aber
die mittleren.)
o Ausserdem soll die Methode weitestgehend unabhaengig vom Kategoriesystem
sein, d.h. die Parameterdateien sollen fuer jede CFG funktionieren.
Die letzte Forderung bedeutet, dass in den Parametern keine spezifischen
Kategorien stehen duerfen. Die einzigen unspezifischen, die in jeder
Konfiguration vorkommen, sind aber #u1 und #u2 und die #u-Variablen!
Wie also soll das gehen?
Zum Einsatz kommen:
-- die Option -U : damit kann man beim Programmaufruf (presto oder srch)
Inhalte fuer Nutzervariablen vorgeben. Ein solcher Inhalt kann z.B.
eine Liste von Kategorienummern sein!
-- der Manipulationsbefehl w : damit kann man einen Arbeitstext als
Kategorienummer interpretieren lassen, und die betreffende Kategorie
wird automatisch zum Arbeitstext gemacht, den man wiederum in eine
#u-Variable kopieren kann,
-- ak-Befehle mit #u-Variablen statt echten Kategorien.
**** Fuer den eiligen Leser *****************************************
Wer sich mit der Theorie nicht lange aufhalten will, braucht nur dieses
zu wissen:
Es gibt drei Dateien:
COFI.BAT steuern den gesamten Ablauf, zu starten vom CockPit
COSU.BAT (COunt FIelds bzw. COunt SUbfields)
C-FI.APR macht im ersten Durchlauf (per presto oder srch)
C-SU.APR Man braucht nur zu kopieren, z.B.
copy C-FI.APR C-FI.PPR
wenn man mit P.CFG arbeitet.
Es erfolgt Aufbereitung einer sortierfaehigen Datei COUNT.
Mit asort wird daraus COUNT.ALG
COUNT2.APR Nach dem Sortieren mit A-SORT wird hiermit die Liste
erstellt. Diese braucht man nicht zu kopieren, denn das
kann immer mit A.CFG ablaufen (die sortierte Datei, also
COUNT.ALG, enthaelt nur #u1 und #u2).
Zwecks Anwendung baut man sich folgende Zeilen bei den "Eigenen Routinen"
in die .OPT-Datei ein:
R Auswertungen, & , Haeufigkeits-Auswertungen von Kategorieinhalten
S Feldinhalte, COFI.BAT, Statistik der Inhalte von Feldern, auch MehrfachFelder
S Teilfelder, COSU.BAT, Statistik der Inhalte von Teilfeldern
Heraus kommt eine Datei COUNT, in der die ausgewerteten Inhalte alpha-
betisch stehen, und wahlweise eine Datei COUNTS, in der sie aufsteigend
oder absteigend nach Anzahl geordnet stehen. Ausserdem die Gesamtsumme
und die Anzahl der unterschiedlichen Eintraege.
**** Ende fuer eilige Leser *****************************************
Wer es genauer wissen will, kann hier weiterlesen:
Der Ablauf, gesteuert von COFI.BAT, sieht so aus:
1. Verschiedene Fragen sind zu beantworten:
Minimalwert? Daraus wird %MIN%
Maximalwert? Daraus wird %MAX%
Beide Fragen koennen mit <Enter> uebergangen werden, dann gelten die
Werte 0 bzw. 1000000, d.h. keine Schwellen.
2. Welche Kategorien sollen ausgewertet werden?
Man gibt eine oder mehrere Kategorienummern, getrennt durch Komma,
also z.B. (bei A.CFG) #40,#402,#403
wenn man die Verfasser (bis zum dritten) auswerten will.
Es kann leider nicht eine Gruppe von Kategorien hier mit einer
einzigen Angabe wie #40. oder so zusammengefasst werden.
(Das Zeichen '#' kann entfallen, also auch 40,402,403 ist moeglich)
Daraus wird zunaechst %c1% gemacht.
Die Punkte 3. und 4. sehen bei COSU.BAT etwas anders aus. Leider kann man
die Teilfelder nicht per Option -U von aussen vorgeben. Daher wird die
Datei C-SU.APR zum editieren vorgelegt, mit sachdienlichen Hinweisen.
3. Welches Zeichen ist das Trennzeichen? (; ¶ .... b=Leerzeichen)
Eines der elf Zeichen ; ¶ b - / . , ( * ' :
kann man eingeben. Wenn ein anderes gewuenscht wird, muss man
in C-FI.APR eingreifen. Die Stellen sind kommentiert.
Am gewaehlten Zeichen werden die Kategorien zerlegt. Nur ein Zeichen
ist moeglich, das fuer alle Kategorien benutzt wird.
Daraus wird zunaechst %c2%
4. Waehlen Sie: 1 = nur den Anfangsteil auswerten (Ende beim Trennzeichen)
2 = jeden Teil auswerten (auch Teile zwischen den Trennzeichen)
Das laesst sich nur mit 1 oder 2 beantworten. Das wird in %C3" gespeichert.
Jetzt kommt eine Kontroll-Anzeige, wo man nochmal sieht, was jetzt als
Vorgabe benutzt wird. Wenn irgendwas nicht stimmt, antwortet man mit n,
und es geht nochmal bei 1. los.
Wenn man 'j' gesagt hat:
5. Wie soll die Auswertung erfolgen?
1 : mit Volltextsuche
2 : als Ergebnismenge (Export mit F4)
Bei 1 wird srch aufgerufen, dann muss man einen Volltext-Suchbegeiff
eingeben, bei 2 wird presto aufgerufen, dann muss man eine Ergebnismenge
bilden und sie per F4 exportieren.
Beim Aufruf wird -Uc1%C1% -Uc2%C2% -Uc3%C3% mitgegeben,
d.h. es entstehen die Uservariablen #uc1 , #uc2 , #uc3.
Diese werden in C-FI.APR verwertet.
6. Es entsteht die Datei COUNT, mit ASORT wird sie sortiert.
Das Ergebnis ist dann COUNT.ALG
7. SRCH verarbeitet COUNT.ALG zu der Ergebnisliste COUNT.
Dabei werden mit -Umi%min% -Umx%max% die Schwellenwerte dem
Programm uebergeben.
8. Es wird gefragt: Sortieren? a=aufsteigend, b=absteigend, n=nein
Antwort 'a' oder 'b' bewirkt, dass COUNT nochmal sortiert wird.
Die Anordnung ist so, dass dann eine auf-/absteigend nach Zahlen sortierte
Liste COUNTS entsteht, waehrend COUNT alphabetisch geordnet ist.
Die nach Zahlen sortierte Liste wird dann auch noch angezeigt, und die
Frage 8. wird wiederholt, damit man evtl. nochmal andersrum sortieren
kann. (Es kommt absteigenden Sortieren MSDOS-SORT zum Einsatz)
9. Beide Listen sind ASCII-Textdateien, die man beliebig weiterverwerten
kann.
Schematischer Ablauf von COFI.BAT bzw. COSU.BAT:
Abfragen Export mit asort Export mit
vom ----------------> COUNT -----> COUNT.ALG ------------> COUNT
Benutzer C-FI.APR / C-SU.APR COUNT2.APR
(srch/presto) (srch)
asort
wahlweise dann noch COUNT ---------> COUNTS
Bei sehr grossen Datenbanken muss man sich natuerlich ein paar Gedanken
machen, wenn man die Volltextsuche einsetzt. Die Zwischendateien COUNT
und COUNT.ALG werden dann u.U. reichlich gross: man muss bedenken, dass
die Schwellenwerte erst beim zweiten Durchlauf greifen koennen, wenn
das Material sortiert ist!
Wer sich angestachelt fuehlt, die Methodik zu erweitern oder aehnlich
allgemeingueltige Parametrierungen zu erstellen, sei dazu ausdruecklich
ermuntert!
Moeglich ist natuerlich auch, den etwas primitiven Dialog (der nur aus
DOS-Batchbefehlen besteht) durch Einsatz eines "Batch-Enhancers" oder
anderer Mittel gewaltig zu verbessern.
-------------------------------------------------------
Was aber muss Frau Schneckler tun, um die Signaturenliste zu produzieren?
Das kommt drauf an, ob ihre Signaturen ein geeignetes Trennzeichen haben,
sonst muss sie zuerst einen Eingriff in C-FI.APR machen.
Aber nehmen wir mal an, die Signaturen haben ein Leerzeichen hinter
der Gruppenbezeichnung. Dann sind die Fragen so zu beantworten:
1. Minimum <Enter> oder eine sinnvolle, nicht zu grosse Zahl
Maximum <Enter>
2. 90,902,903,904,905 wenn bis zu 5 Signaturen vorkommen koennen
(oder 90,90a,90b,... wenn Buchstaben statt Ziffern verwendet werden)
3. b (Leerzeichen ist Trennzeichen)
4. 1 (Nur Anfangsteil auswerten)
5. 1 (Volltextsuche)
Als Suchwort 0 oder #90 eingeben
Dann heisst es nur noch abwarten, bis die Liste fertig ist.
MfG B.E.
Mehr Informationen über die Mailingliste Allegro