[opengeodb] Nochmal zu Prosa-Namen wie "Brandis bei Wurzen" (war: Inkonsistenzen der Download-Daten)

Martin Trautmann traut at gmx.de
Fre Mar 28 19:50:01 CET 2008


Frank Glück wrote:

>> Es stehen durchaus verschiedene Methoden zur Verfügung, wie du dir die
>> Kurzformen ableiten kannst - z.B. indem du ab dem ersten
>> kleingeschriebenen Wort den Rest wegwirfst, ebenso alles nach einem
>> Komma, Schrägstrich oder Klammer.
>
> Demnach kann man ja auch davon ausgehen, dass der "Prosateil" wirklich immer
> an den offiziellen Namen anzuhängen ist und der umgekehrte Fall niemals
> vorkommt(?)

Nein, davon kannst du nicht ausgehen.

Diese Anleitung kannst du dazu verwenden, um den Name in einer ersten 
Phase zusammenzustauchen - dann kannst du vergleichen, ob er bereits auf 
den Sortiernamen abgebildet werden kann.

> Was spricht dann dagegen, die beiden Datentypen einfach auch
> getrennt voneinander vorzuhalten - dann soll sie doch derjenige für seine
> speziellen Zwecke wieder zusammenführen, der sie wirklich in dieser Form
> braucht.

Ich selbst verwende dafür drei getrennte Felder:
Name kurz
Name lang
Name sonstige
... wobei unter sonstige alle möglichen Schreibvarianten hinzugefügt 
werden können.

>> Wie du schon entdeckt hast, steht in
>> 500100002 genau das zur Verfügung, was du brauchst. Den Zusatzaufwand
>> der Konvertierung kannst du entweder im Moment der Abfrage machen oder
>> dir vorab eine Rückkonvertierung ausdenken, die über den ASCII-Teil dir
>> den relevanten Teil der Kurzform zurückgibt.
>> Ebenso kannst du natürlich eine Wildcard-Suche verwenden, die dir alles
>> liefert, was mit Brandis beginnt.
>
> Nein, umgekehrt: man sollte nicht darauf angewiesen sein, sich über Skripte
> (womöglich noch über den redundanten Sortiernamen) mehr oder weniger
> aufwändig das wiederherstellen zu müssen, was die Datenbank auch im
> Rohformat liefern könnte.

Tja, irgendwo hört das Wunschkonzert auf, was derzeit angeboten wird. 
Von daher hatte ich die Freiheit, das passend zu modellieren: Name 
enthält die gesamte verfügbare Info, Sortiername enthält den typischen 
Such- und Sortierbegriff - und die Suche erfolgt schneller, wenn ich den 
Suchstring nach Sortier-Methodik aufbereite und direkt in der mit 
ausgeschriebenen Umlauten und Grossbuchstaben passenden Schreibweise 
suche, zuerst komplett passend, dann damit beginnend, dann als 
Teilstring, erst dann komplett über alles.

> Ebenso, wie auch derjenige, der für seine
> spezielle Anwendung Sortiernamen benötigt, sich diese doch nach seinen
> eigenen Anforderungen, die ja weit auseinandergehen können, selbst erstellen
> könnte. Informationen und Beispiele dazu, wie er das zu Wege bringt, würden
> dann ins Wiki gehören. Und dass man diese in Form von SQL-Befehlen zur
> Verfügung stellen müsste, halte ich ebenso für falsch. Denn das hier ...
>
>>   tr/a-zäöüáàâãåéèêëíìïïóòôõçñ/A-ZÄÖÜAAAAAEEEEIIIIOOOOCN/;
>>   tr/ÀÁÂÃÅÈÉÊËÌÍÎÏÒÓÔÕÇÑ/AAAAEEEEIIIIOOOOCN/;
>>   Ä ->  AE
>>   Ö ->  OE
>>   Ü ->  UE
>>   ß ->  SS
>>   SSS ->  SS
>
> sollte mit so ziemlich jeder Skriptsprache recht einfach hinzubekommen sein,
> für viele Anwendungszwecke wohl sogar zur Laufzeit.

Sobald mir jemand die entsprechenden SQL-Befehle zur Verfügung stellt, 
ist SORTNAME redundant und wird nicht mehr mitgeliefert.

Schönen Gruß
Martin