Neue Version 0.10 des z3950-Servers

Martin Butkus m.butkus at tu-bs.de
Fr Jul 25 16:46:08 CEST 2003


Liebe Liste, 

inzwischen haben mich einige Verbesserungsvorschläge von 
einigen Beta-Testern erreicht, und sind in den Z39.50-Server 
eingeflossen. Die Version 0.10, die seit heute auf dem 
FTP-Server verfügbar ist, enthält u.a. die folgenden 
Verbesserungen:

- einen wichtigen Bugfix für eine nicht funktionierende 
  TCP/IP-Kommunikation mit dem Avanti-Server, wenn eine 
  eigene "dict"-Datei verwendet wurde

- eine weniger verwirrende Syntax für die "dict"-Datei. 

  Einzelne Register werden nun wieder mit "+" getrennt, statt 
  mit ",".  Daher ist die Syntax der "dict"-Datei nun wieder 
  weitgehend kompatibel mit der entsprechenden Datei des 
  alten Z3950-Servers.

  Beim Update von den Versionen 0.7 bis 0.9 ist darauf zu achten, 
  daß die "dict"-Dateien einer bestehenden Installation per Hand 
  angepaßt werden müssen. Beispiel:

  1017 =  |1, |3, |4 			# alt

  wird zu

  1017 =  |1 + |3 + |4 			# neu


- Unterstützung für diverse BIB-1 Strukturattribute (BIB-1 Attribut 4).
  Es werden Word, Phrase, String, Key und Wordlist unterstützt.

  Im letzteren Fall (Wordlist) wird der Suchbegriff als eine 
  "und"-verknüpfte Liste von Suchworten aufgefaßt.

  Beispielanfrage im yaz-client, und die jeweilige Übersetzung in
  einen Avanti-Suchbefehl:

        find @attr 4=6 "Apfel Baum" 			# Wortliste

   -->  find  ( ( ( TIT "Apfel" ) or ( PER "Apfel" ) ) and
  			     ( ( TIT "Baum" )  or ( PER "Baum" ) ) ) 

  In allen anderen Fällen (Phrase, String, ...) wird der Suchbegriff 
  immer als vollständiger String aufgefaßt:

        find @attr 4=1 "Apfel Baum" 			# Phrase

  -->   find  ( ( ( TIT "Apfel Baum" ) or ( PER "Apfel Baum" ) )

- Begrenzte Unterstützung für die Verwendung von "Wildcards" in 
  Suchausdrücken.
  
  Das Wildcard-Symbol ist das Raute-Zeichen '#' und wird nur
  dann als Wildcard-Symbol verarbeitet, wenn das BIB-1 
  Attribut 5 = 101 ("wildcard truncation") gesetzt wird.
  
  Bei der Wildcardsuche wird aber nur die *Rechts*trunkierung von 
  Phrasen oder von Wörtern in einer Wortliste unterstützt. 
  Grund hierfür ist, daß Allegro nur die Rechtstrunkierung unterstützt.

  Die Wildcard-Anfrage "Jugoslaw#" würde also akzeptiert.

  Beispiele für *nicht* akzeptierte Wildcard-Abfragen:

        "#goslawien"	(Linkstrunkierung)
	"#goslaw#"	(Links- und Rechtstrunkierung)
	"Jugo#awien"	(Trunkierung 'in der Mitte')

  In solchen Fällen kommt es zu einer Fehlermeldung.

  Der Sinn dieses Features ist es, in Verbindung mit dem Strukturattribut
  "Wortliste" (siehe oben) nur einzelne Wörter in einer Wortliste der 
  Rechtstrunkierung zu unterwerfen. 

  Beispiel für eine Suche in einer Wortliste mit selektiver 
  Rechtstrunkierung:

        find @attr 4=6 @attr 5=101 "Apf# Baum Wurz#" 		

   -->	find  ( ( ( TIT "Apf?" ) or ( PER "Apf?" ) ) and
  	        ( ( TIT "Baum" )  or ( PER "Baum" ) ) and
  	        ( ( TIT "Wurz?" )  or ( PER "Wurz?" ) ) ) 

  
  Damit diese selektive Trunkierung funktioniert, muß 
  in der z3950.cfg "search_truncate = no" gesetzt sein.
  Ansonsten wird grundsätzlich jedes Wort rechtstrunkiert.

Vielen Dank für die bisherigen Rückmeldungen und weiterhin 
viel Spaß beim Testen! :)

Freundliche Grüße,
	Martin Butkus




Mehr Informationen über die Mailingliste Allegro