Vb.106: UPDATE/PRESTO/IMPORT

Bernhard Eversberg EV at buch.biblio.etc.tu-bs.de
Do Mär 5 08:02:22 CET 1998


Verlautbarung 106 der Entwicklungsabteilung                      19980305
-------------------------------------------

Neue files auf  AC15/PROG :  UPDATE.LZH, PRESTO.LZH, IMPORT.LZH


1. Option -N0 : Verbesserung in PRESTO und UPDATE
-------------------------------------------------

So ganz das "Gelbe" war's noch immer nicht: -N0 hatte keine Wirkung, wenn
Saetze zu ersetzen waren. Nur bei neuen Saetzen klappte es, dass die ge-
loeschten einfach nicht beachtet wurden. Bei Austausch vorhandener Saetze
aber wurde noch immer die Liste der geloeschten Saetze abgeklappert, auch
bei -N0, um vielleicht einen passenden zu finden, wo er denn wieder hinein-
passt. Und das kann dauern, wenn viele Leerschluessel da sind.
(Wenn ein Satz noch an die alte Stelle passt, ist das nicht relevant,
nur wenn er nicht mehr passt, also zu lang geworden ist!)
Jetzt ist in PRESTO und UPDATE dieses Problem behoben. Das bedeutet auf
der andern Seite, dass NOCH MEHR Leerschluessel enstehen. Das ist solange
egal, wie man a) genug Plattenspeicher hat und b) immer konsequent -N0
beim Start von PRESTO und UPDATE gesetzt wird. Trotzdem empfiehlt sich
natuerlich, gelegentlich mal die eine oder andere Datei zu entlueften.
Welche besonders loechrig sind, kann man ueber CockPit erfahren: 
Routinen/Organisieren/Ungenutzten Platz pruefen. Dann entsteht eine
schoene Aufstellung (Datei PROTOQ). Wenn die Datenbank noch so etwa unter
100.000 Saetzen liegt, entlueftet man sie einfach als Ganzes, sonst
waehlt man gezielt diejenigen .ALD-Dateien, wo es was bringt. Aber es
geht ja in jedem Fall viel schneller als ein Neuaufbau mit Index.
PRESTO und UPDATE sind erneuert, die anderen Programme folgen nach Bedarf.
Auch in "avanti" wird die Aenderung uebernommen werden.



2. Neue IMPORT-Funktion
-----------------------

Ein beliebtes System in der Web-Szene ist HARVEST. Dazu gehoert ein Pro-
gramm namens "Gatherer", also "Sammler". Man kann es unauffaellig des 
Nachts ausschicken, um fremde Server oder ganze Domaenen abzuernten, 
d.h. die zugaenglichen Verzeichnisse abzugrasen nach Dateien bestimmter 
Typen, diese zu analysieren und Metadaten daraus zu machen. Das klappt umso
besser, wenn die fremden Daten auch schon Metadaten enthalten, sonst sind
die Ergebnisse von zweifelhaftem Wert, aber das Einzige, was man ohne
grosse Arbeit machen kann.
Die gewonnenen Daten koennen mit einem Textretrieval-System dann durchsuch-
bar gemacht werden. Sie koennten auch per IMPORT umgewandelt werden, denn
es sind "flache" ASCII-Dateien. Das Format nennt sich SOIF. Natuerlich
haben die Entwickler es hingekriegt, die im Prinzip einfachen Daten so
zu strukturieren, dass man selbst mit IMPORT Schwierigkeiten bekommt.
Hier ist ein Ausschnitt aus einer solchen Datei:
Die Saetze fangen immer mit @FILE an.

*******************************************************
@FILE { http://cantor.mathematik.uni-halle.de:8080/reports/shadows/97-38report.html
update-time{9}:	886892519
description{63}:	DC MetaData for: Eine Bibliothek mit parallelen Algorithmen und
last-modification-time{9}:	876310378
time-to-live{6}:	691200
refresh-rate{6}:	604800
gatherer-name{6}:	report
gatherer-host{30}:	cantor.mathematik.uni-halle.de
gatherer-version{3}:	1.5
type{4}:	HTML
file-size{4}:	2552
md5{32}:	1b80b267d0f7fe594515cf0cf8cdeb3b
body{758}:	H. Zickner, H. Blaar, M. Baesken 
Eine Bibliothek mit parallelen
Algorithmen und Datenstrukturen zur Loesung geometrischer Probleme
Preprint series: 
97-38, Reports on Computer Science 
CR:
D.1.3;D.1.5;E.1;F.2.2;I.3.5 
Abstract : A project to work out a
library of parallel geometric algorithms and data structures for ...
*****************************************************

Die "Felder" haben Namen, wie man sieht, und hinter dem Namen steht in {}
die Laenge des Textes. Genauer gesagt sieht es so aus:

Feldname{laenge}:TABxxxxxxxxxxxxL      [ xxx = Text, L = 10 = Line feed]
xxxxxxxxxxxxxxL
xxxxxxxxxxxx
Feldname{nnn}:
Gezaehlt wird nicht : und TAB, sondern nur xxxx und die Line-feed codes.
(Aufpassen: wenn man so eine Datei von UNIX herunterlaedt, dann mit Modus
binary, denn sonst wird aus 10 immer 13 10...)
Weil die Feldnamen nun wild schwanken koennen, auch wiederholbar sind,
hat man mit den normalen IMPORT-Befehlen das Problem, dass man das Ende
des Feldes nicht bestimmen kann, es koennen ja auch Zeilenumbrueche im
Text des Feldes sein. Kein Code zeigt zuverlaessig das Ende eines
Feldes an.
Und noch ein Problem: die Feldnamen koennen mal gross, mal klein geschrieben
sein! Da wird's mit den s- und g-Befehlen von IMPORT schwierig.

Es wurden, um diesen Schwierigkeiten abzuhelfen, zwei Neuerungen in IMPORT
eingebaut, wovon die erste auch in anderen Faellen nuetzen kann:

1. Positionierungsbefehle S und G
---------------------------------
Diese arbeiten wie s und g. Man muss die Feldbezeichnungen klein
schreiben, dann finden S und G sie auch, wenn sie im Text anders geschrieben
sind. Konkret:

#20
S "title:"
...

findet auch  "Title:" und "TITLE:" usw.,  desgl. fuer G.

2. Bestimmung der Laenge aus {nnn}
----------------------------------
Dazu dient der neue Befehl A. Fuer dasselbe Beispiel heisst das:

#20
s"title:"    diese Zeichenfolge im Fremdsatz suchen
A          Anzahl Zeichen nach SOIF-Methode bestimmen
_ 10       zeilenumbrueche beseitigen
_ 32

Der Befehl A macht dieses: geht zu der Position hinter TAB und nimmt dann
die Anzahl Zeichen, die sich aus {...} ergeben. Die Ersetzung von Code 10
durch 32 (Leerzeichen) beseitigt dann noch die evtl. vorhandenen Zeilen-
umbrueche im Feldtext. So kann mit denkbar geringem Aufwand auch SOIF
geknackt werden. Dass die Daten in ihrer Qualitaet hoechst inhomogen sind,
ist ein ganz anderes Problem... (z.B. mal "Vorname Nachname", mal umgekehrt,
das ist z.B. im "Dublin Core" ja auch noch nicht streng geregelt) Dass man
diese Probleme so wenig als solche begreift, liegt daran, dass die Retrieval-
software, die man vorwiegend benutzt, fuer reines Textretrieval gedacht
ist, und dabei gibt's nur Stichwoerter. So was wie ein Namensregister, ueber-
haupt alphabetische Register, hat man da gar nicht.

IMPORT.LZH wurde bereitgestellt.

MfG  B.E.





Mehr Informationen über die Mailingliste Allegro