Neue Version 0.10 des z3950-Servers
Martin Butkus
m.butkus at tu-bs.de
Mo Jul 28 16:11:50 CEST 2003
In message <4B9987745D7 at buch.biblio.etc.tu-bs.de> you write:
Hallo Herr Berger,
> wichtig faende ich eine Suche, die im Fall "automatisch"
> folgendes generieren kann
>
> "Apfel" wird zu
>
> find ( TIT "Apfel" ) or ( PER "Apfel?" )
>
> oder sogar
>
> find ( TIT "Apfel" ) or ( PER "&Apfel,?" )
Gute Idee! Bisher geht das noch nicht, die nächste Version wird es aber
beinhalten. Ich hab's heute schon mal implementiert, will das aber noch
etwas stress-testen, bevor es freigegeben wird.
Die Lösung sieht wie folgt aus:
Statt daß den Z3950-Attributen wie bisher bestimmte Allegro-Register
zugeordnet werden, werden ihnen jetzt ganze Avanti-Suchausdrücke
zugeordnet, die sich über die "dict"-Datei vorgeben lassen.
Dabei gibt es jeweils zwei Varianten, eine "mit Trunkierung" und eine "ohne".
Das sieht dann zum Beispiel so aus:
# nicht trunkiert
1 = PER "%s" # Name-personal
4 = TIT "%s" # Title
1017 = ( PER "%s" ) or ( TIT "%s" ) # Server-choice (Default)
...
# trunkiert
t1 = PER "%s?" # Name-personal
t4 = TIT "%s?" # Title
t1017 = ( PER "%s?" ) or ( TIT "%s?" ) # server-choice (Default)
...
Das "%s" wird jeweils automatisch durch den Suchbegriff ersetzt.
Dann ist es kein Problem, z.B. auch so etwas zu formulieren:
1017 = ( PER "%s,?" ) or ( TIT "&%s" ) # Server-choice
t1017 = ( PER "%s,?" ) or ( TIT "&%s?" ) # Server-choice, trunkiert
Dann würde "find Apfel" bei ausgeschalteter Trunkierung zu:
find ( ( PER "Apfel,?" ) or ( TIT "&Apfel" ) )
und bei eingeschalteter Trunkierung zu:
find ( ( PER "Apfel,?" ) or ( TIT "&Apfel?" ) )
Das Use-Attribut 1017 ist dabei der "Default-Wert", der dann genommen
wird, wenn bei der Suche keine Angaben gemacht werden.
Wobei sich der Default (Trunkierung an/aus) in der Konfigurationsdatei
z3950.cfg einstellen läßt. Per passendem Z39.50-Attribut kann aber der
Benutzer jederzeit die Trunkierung an- bzw. ausschalten.
> (und "apfel#" wuerde zu
> find ... ( per "apfel??" )
Nein, sondern zu ( per "apfel?" ), bzw. ( per "apfel,?" ) wie
sich's gehört. Wildcards werden aus dem Suchbegriff entfernt und
intern in Rechtstrunkierungen übersetzt.
> oder sogar
>
> find ... ( PER "&Apfel?,?" )
Ist ja grauslich. :>
> und duerfte keinen Avanti-Absturz provozieren)
Naja, dafür kann ich dann nicht garantieren. ;)
Freundliche Grüße,
Martin Butkus
Mehr Informationen über die Mailingliste Allegro