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