[Allegro] Acon: Kein Entsperren am Ende des Jobs?
Sibylle Koczian
Sibylle.Koczian at t-online.de
Di Jan 1 18:20:21 CET 2013
Lieber Herr Berger, liebe Liste,
Am 31.12.2012 16:48, schrieb Thomas Berger:
> Liebe Frau Koczian, liebe Liste,
>
>> in der Dokumentation zu "set lock/unlock" heißt es:
>>
>> "Automatisch, etwa vor dem Laden des nächsten Satzes oder am Ende des Jobs,
>> wieder freigegeben wird der Satz nur in avanti, aber in a99 nicht, d.h. da muß
>> man das mit set unlock selber tun."
>>
>> Daraus würde ich eigentlich schließen, dass ein Satz _nicht_ gesperrt
>> zurückbleiben sollte, wenn ein Acon-Job
>>
>> - ihn mit f1nd sucht und lädt
>> - auf "if no" mit einer Fehlermeldung reagiert
>> - ein paar Kategorien ausgibt
>>
>> und sonst nichts. Kein Ändern, kein Speichern, und auch kein Übergang zu einem
>> nächsten Satz.
>
> ... und insbesondere kein Sperren ...
>
> Haben Sie da etwas entscheidendes nicht geschildert? Nach meiner Erinnerung
> war es nur fuer ganz kurze Zeit in diesem Sommer so, dass acon stets gesperrt
> hat (ich habe das aber laenger nicht getestet und im Quellcode nachgeschaut)
>
Explizites Sperren und/oder Entsperren im Job findet nicht statt. Aber
gesucht wird mit _f1nd_ und das sperrt (sagt die Dokumentation und passt
zu dem, was ich sehe). Genauer (siehe "set getlock"):
"Das Sperren geschieht in avanti ebenfalls automatisch nach Befehlen des
Typs f1nd ... und get ... aber nur wenn set getlock on gesetzt ist."
Ich gehe davon aus, dass "getlock on" Default ist, sonst könnte ich mir
meine Ergebnisse nicht erklären. Aus der Dokumentation allein wird mir
allerdings nicht klar, wie der Normalzustand sein müsste.
Ich habe jetzt versucht, die Sperr-/Entsperr-Tätigkeit von f1nd mit "if
Lock" und Abfragen von sL zu testen, es bleiben Unklarheiten. Ich mache
daraus eine eigene Nachricht, sonst wird das hier zu lang.
>
>> Ein Python-Skript führt diesen Job mehrmals hintereinander mit wechselnden
>> Suchbegriffen aus. Und hinterher stelle ich fest, dass die Sätze, die dabei
>> gefunden und ausgegeben wurden, sehr wohl gesperrt sind.
>
> Bezueglich automatischem entsperren gab es auch einiges an Hin- und her,
> insbesondere wenn der Satz weggeschrieben wird - manchmal muss er dann
> gesperrt bleiben. Und es soll auch moeglich sein, einen Satz zu sperren,
> irgendetwas anderes zu tun (andere Satze heranziehen) und dann erst
> wieder zu entsperren. Insofern ~sollte~ die Faustregel sein, dass Saetze,
> die explizit im Job gesperrt wurden, auch explizit wieder freizugeben
> sind.
>
Davon würde ich auch ausgehen. Die Frage ist, ob die Benutzung von f1nd
in diesem Sinn ein explizites Sperren darstellt.
Ich erinnere mich an die Diskussion, habe sie allerdings nicht wirklich
genau verfolgt. Dass ein Satz, der nur gelesen wurde, in Abhängigkeit
von der Art der Suche (f1nd - find) gesperrt zurückbleiben kann, wäre
mir aber vermutlich aufgefallen, wäre davon ausdrücklich die Rede gewesen.
>
>> Zwei Nebenfragen: die Sätze, die ich brauche, lassen sich nicht auf vernünftige
>> Weise zu einer Ergebnismenge zusammenfassen. Ich könnte allerdings einen langen
>> String konstruieren, der innerhalb des Jobs in die einzelnen Suchbegriffe
>> zerlegt werden müsste. Hätte das Vorzüge?
>
> Im Gegensatz zu einem Feature, das Ergebnismengen vergroessern kann?
>
Im Gegensatz zu meinem aktuellen Vorgehen, in dem ein Python-Skript
verschiedene Acon-Jobs nacheinander ausführen lässt: Job 1 bildet eine
Ergebnismenge und gibt pro Satz ein paar wenige Informationen aus.
Gerade genug, dass das Python-Skript daraus je einen Suchbegriff bilden
kann, der zu jedem Satz der ursprünglichen Menge mittels Job 2 genau
einen _anderen_ Satz findet, aus dem dann die eigentlich gesuchte
Information gelesen wird. Es kann sein, dass mehrere Sätze der in Job 1
gebildeten Menge auf den gleichen "eigentlich gesuchten" Satz führen;
das ist in Python sehr leicht abzufangen, ich bezweifle, dass es
innerhalb eines Acon-Jobs ebenso einfach wäre.
>
>> Und bei dieser Variante könnte ich mit "set getlock off" das Sperren der
>> einzelnen Sätze von vornherein abstellen. Muss das dann am Ende explizit wieder
>> gesetzt werden oder passiert das am Ende des Jobs automatisch?
>
> Ah, das Feature hatte ich verdraengt. Also, wenn Sie "set gettlock on"
> setzen, kann es durchaus sein, dass Sie die erste sind, die dieses
> Feature nutzt und die zugehoerige Entsperrlogik nicht in acon implementiert
> ist, also in den Job gehoert...
>
Meine Frage ist umgekehrt (ausgehend von der Vermutung, dass "getlock
on" Default-Einstellung ist, siehe oben): ich würde das Sperren
abstellen wollen und weiß nicht, ob ein solches Abstellen den Job
überleben könnte. Dass ich ein explizites "set getlock on" auch wieder
explizit abstellen müsste, davon bin ich bis zum Beweis des Gegenteils
überzeugt.
Ich werde jetzt erst mal einerseits die zum Thema passende Verlautbarung
zu finden versuchen und andererseits noch etwas testen.
Beste Grüße,
Koczian
Mehr Informationen über die Mailingliste Allegro