Diffiziles Indexierungsproblem
Heinrich Allers
allers at t-online.de
Sa Jul 31 09:54:33 CEST 2004
Lieber Herr Berger:
> ich glaube, ein ziemlich aehnliches Problem hatten Sie neulich
> schon einmal.
Oh, das ist jetzt das zweite Mal, daß Sie sich besser als ich an das
erinnern, was ich hier bereits einmal vorgebracht hatte! :-((
Ich sollte eine Datenbank anlegen mit meinen an die Liste gerichteten
Fragen - und könnte weitere Tipps und Tricks und Merkposten ja gleich
noch dazutun, nach bekannntem Vorbild ...
ha:
Mir geht z.B. nicht in den Kopf, warum ich in Register 1 zwei Einträge
unter 'p00007' bekomme, aber keinen unter 'orpheus' und keinen unter
'sonette', obwohl der in Register 11 unter dem Schlüssel '0024190...'
auszumachende Titel das Feld #26 mit "Die Sonette an Orpheus" besitzt.
tb:
Mir geht es umgekehrt:
p00007 gehoert schliesslich nicht ins Register 1.
ha:
Ja, das Auftreten dieses Schlüssels in Reg. 1 befremdet uns beide also
gleichermaßen.
tB
In Ihrer .api passiert folgendes:
Die folgenden 2 Zeilen gehören zusammen:
ak=26+o
ak=uti" "+E
#-o
#uti dti e0
!u1 =ti e0
#+#
#-E Sachtitelwörter (aus #26)
!u1 u p"|1"
#uti dti e0
#+#
D.h. Falls #26 existiert, wird die Kategorie bei #-o nach #uti
kopiert. Das ist soweit o.k.
Falls #uti existiert, wird es beim Spatium zerhackt und dann
bei #-E das Wort ausgegeben, sofort wird dann (also beim
ersten Wort aus #uti) #uti geloescht. Dem ak-Statement wird
dadurch quasi der Boden unter den Fuessen weggezogen, was
danach passiert, ist ziemlich undefiniert.
ha:
Zugegeben, dieser hier von mir benutzte Mechanismus verdient, gehörig
geprüft zu werden, und die Antwort auf die Frage, ob es sich hier um
eine
A: korrekte
B: etwas unsaubere, aber über weite Strecken hin und unter bestimmten
Voraussetzungen funktionierende
C: eine vollkommen falsche und drum verbotene
Parametrierung handelt, ist sicher von Bedeutung
Ich behaupte, daß dieser Parametrierung zumindest die Qualitätsklasse B
zukommt, denn wenn man so indexiert, wie in dem hier wiedergegebenen
Ausschnitt der Indexparameterdatei gezeigt, dann ist alles in Butter!
Außer 'sonette' und 'orpheus' erscheinen fein alle Titelwörter aus den
vorkommenden #26!
Erst die Erweiterung der Indexierungsvorschrift um
ak=9V+V
...
...
#-V
#u1 =tx e0
#+#
führt zum Versagen der Registerschlüsselbildungsprozesse.
tb:
Vermutlich stammt das unglueckselige "#uti dti" bei #-E aus
der Erkenntniss, dass #uti sonst lange leben bleibt, wenn die
aktuelle Aufnahme keine #26 besitzt (denn dann wird das
erste "#uti dti" bei #-o ja nicht erreicht).
ha:
Ja, so ist 's, ich will halt ein vagabundierendes #uti verhindern.
tb:
Das muessen
Sie aber anders loesen, bei #-E, also dem Statement, das
aus #uti heraus aktiviert wird, geht es nicht.
ha:
Meine Behauptung ist, daß es geht (womit ich indirekt diesem Verfahren
sogar die Qualitätsklasse A zuspreche).
Begründung:
Meinem Verständnis wird mit
ak=uti" "+E
...
#-E Sachtitelwörter (aus #26)
!u1 u p"|1"
#uti dti e0
#+#
erst #uti in seine durch Leerzeichen getrennten Bestandteile zerhackt.
Danach werden diese Bestandteile intern in einem Feld (wieviele
Elemente wird das wohl haben dürfen?) abgespeichert
Und anschließend wird Feldelement für Feldelement hergenommen und unter
#-E abgearbeitet.
Das heißt: #uti kann bereits bei der Abarbeitung des allerersten
Feldelementes gelöscht werden, denn es hat seine Schuldigkeit getan,
seine Bestandteile sind dem Programm bereits bekannt und liegen zur
Abarbeitung bereit.
(Hier noch einmal die Adresse der Demonstration des Problems:
http://www.allers.privat.t-online.de/quark/quark3.lzh
falls es bei jemandem regnet und nicht wie hier strahlend die Sonne
scheint und zu anderen Dingen ruft).
Mit bestem Dank und
Grüßen von
Heinrich Allers
-- allers at t-online.de * http://www.allers.privat.t-online.de
-- Die Türkei? In die Europäische Union aufnehmen, jetzt!
-- ¿Turquía? ¡Integrar en la Unión Europea, ahoramismo!
Mehr Informationen über die Mailingliste Allegro