[Allegro] Aufsplittung

Thomas Berger ThB at Gymel.com
Mo Nov 26 22:49:42 CET 2012


Lieber Herr Stephan,

ich bin ja eigentlich Normdatenfanatiker, diese Aufgabenstellung
scheint mir allerdings extrem sinnlos: Wenn ohnehin sowieso nur
die Zeichenketten der Ansetzung bekannt sind (inklusive aller
Tippfehler), dann ist "Verknuepfung" nur eine komplizierte Form,
eben jene Zeichenketten zu codieren, ohne irgendwelchen Mehrwert.
[Und Systeme, die vollverknuepft arbeiten, sind eigentlich darauf
eingestellt, beim Import von Zeichenkettendaten irgendwie einen
passenden Normsatz zu finden oder automatisch zu generieren:
"Interaktiv" ist ja in allen Faellen viel zu viel Arbeit, aber
nur "interaktiv" koennte man so viel Intelligenz in den Prozess
einbringen, dass es mehr waere als das reine Zeichenketten-Matching...]

Sei's drum.

Kategorientechnisch wuerden Sie fuer die Normsaetze die Struktur
der Personennormsaetze mit #4n nutzen, und die Klartext-Zeichenketten
in den #4er-Kategorien der Titelsaetze jeweils durch eine Verknuepfung
mit der Identnummer, also
#40 _p1234
statt
#40 Mueller, Hans
ersetzen, wobei dann der Normsatz so aussieht
#00 p1234
#4n Mueller, Hans

Nun koennten Sie einen Export aller Klartextnamen vornehmen,
sortieren & eindeutig machen, daraus #4n-Saetze generieren, die
nur #4n enthalten plus einen Platzhalter "#00 p?6" und das dann
per Update in die Datenbank laden, dann bekommen die Saetze echte
Nummern. Anschliessend kann ein Flex oder eine Globale Manipulation
jede Klartext-#40er im Register der Uebernahmeschluessel aufsuchen,
die Identnummer aus der Registerzeile auslesen und die Original-
kategorie durch die Verknuepfung ersetzen. Je nach Indexierung der
Datenbank werden dabei allerdings "Mueller, Hans" und "Müller, HANS"
nicht unterschieden.

Oder aber Sie exportieren die Datenbank komplett als .alg-Datei(en),
und haspeln sie mit einer Scriptsprache Ihrer Wahl durch (alle kennen
ja Hashes / assoziative Arrays, koennen also elegant bemerken, dass eine
Zeichenkette in exakt dieser Form bereits einmal vorgekommen ist),
wenn die Zeichenkette in #40xx noch nicht vorgekommen ist, wird ein
Zaehler hochgezaehlt und als zur Ansetzung gehoerig vermerkt, in
allen Faellen wird dann die zur Ansetzung gehoerende Nummer als
Verknuepfung eingetragen. Zum Schluss werden dann alle Ansetzungen
mitsamt der vergebenen Nummern als Normsaetze im .alg-Datei ebenfalls
ausgespuckt (oder noch schlauer: der Mechanismus macht Pseudo-.ald-
Dateien draus), die Datenbank anhand dieser Dateien "voellig neu
aufgebaut" und fertig.

Weil die Flex-/Job-Sprachen mit "$" ebenfalls assoziative Arrays beherrschen
und der Speicherbedarf da kein Thema ist, sollte es sogar damit
gehen: Da muss natuerlich jeder neu identifizierte Normsatz sofort
abgespeichert werden, damit das anschliessende Abspeichern des nunmehr
damit verknuepften Titelsatzes nicht auf ungesaettigte Normsatzreferenzen
stoesst. Die Sprachen kennen zwei Datensatzspeichern, in dem anderen
kann man den "frischen" Normsatz zusammenbauen, waehrend im einen
noch der aktuelle Titeldatensatz steht. Nur das Hochzaehlen eines
Zaehlers ist nicht so einfach, da es viele Anweisungen benoetigt ;-)
Weil jeder neue Normsatz und jeder Titelsatz einzeln abgespeichert
werden muesse, duerfte der Zeitbedarf dieser Loesung erheblich
sein (und das Entwickeln und Testen des Flex/Jobs ist auch nicht ohne),
die "externe" Loesung im vorigen Abschnitt duerfte daher deutlich
effizienter sein (und laesst sich 1:1 auch auf bereits exportierte
Daten anwenden, falls man die diesmal vergebenen Nummern kein weiteres
Mal benoetigt und die eigene Datenbank von dem Quatsch freihalten will)

viele Gruesse
Thomas Berger



Am 26.11.2012 17:26, schrieb Armin Stephan:
> Liebe Kolleginnen und Kollegen,
> 
> im Zusammenhang mit einer Datenkonvertierung stehe ich zum ersten Mal vor der
> Notwendigkeit, bibliographische Datensätze mit einer flachen Struktur in eine
> verknüpfte Struktur zu überführen.
> 
> 
> Aus folgender Datenstruktur ...
> 
> TITELSATZ 1
> Verfasser: Groß, Erich
> Hauptsachtitel: Freiheit vorgestern
> Jahr: 2007
> ...
> 
> 
> TITELSATZ 2
> Verfasser: Müller, Christian
> Hauptsachtitel: Freiheit gestern
> Jahr: 2008
> ...
> 
> 
> TITELSATZ 3
> Verfasser: Schmidt, Hans
> Hauptsachtitel: Freiheit heute
> Jahr: 2009
> ...
> 
> TITELSATZ 4
> Verfasser: Groß, Erich
> Hauptsachtitel: Freiheit morgen
> Jahr: 2010
> ...
> 
> TITELSATZ 5
> Verfasser: Kunze, Arnd
> Hauptsachtitel: Freiheit übermorgen
> Jahr: 2012
> ...
> 
> 
> ... soll also folgende Datenstruktur werden:
> 
> 
> PERSONENSATZ 1
> IDN: 1236
> Ansetzungsform: Groß, Erich
> 
> PERSONENSATZ 2
> IDN: 1678
> Ansetzungsform: Müller, Christian
> 
> PERSONENSATZ 3
> IDN: 1831
> Ansetzungsform: Schmidt, Hans
> 
> PERSONENSATZ 4
> IDN: 2034
> Ansetzungsform: Kunze, Arnd
> 
> _______
> 
> TITELSATZ 1
> Verfasser: IDN 1236
> Hauptsachtitel: Freiheit vorgestern
> Jahr: 2007
> ...
> 
> 
> TITELSATZ 2
> Verfasser: IDN 1678
> Hauptsachtitel: Freiheit gestern
> Jahr: 2008
> ...
> 
> 
> TITELSATZ 3
> Verfasser: IDN 1831
> Hauptsachtitel: Freiheit heute
> Jahr: 2009
> ...
> 
> TITELSATZ 4
> Verfasser: IDN 1236
> Hauptsachtitel: Freiheit morgen
> Jahr: 2010
> ...
> 
> TITELSATZ 5
> Verfasser: IDN 2034
> Hauptsachtitel: Freiheit übermorgen
> Jahr: 2012
> ...
> 
> 
> 
> Sicherlich hat manche/r in der Runde Erfahrung mit diesem Phänomen und kann mir
> sagen, wie man so etwas mit Allegro angehen kann.
> 
> Ich wäre für Nachhilfe sehr dankbar.
> 
> 
> 
> 
> _______________________________________________
> Allegro mailing list
> Allegro at biblio.tu-bs.de
> http://sun250.biblio.etc.tu-bs.de/mailman/listinfo/allegro
> 



Mehr Informationen über die Mailingliste Allegro