Wikipedia Diskussion:Lua/Modul/AdressenSort

(Weitergeleitet von Wikipedia Diskussion:Lua/Modul/AdressenSort/de)
Letzter Kommentar: vor 7 Jahren von Herzi Pinki in Abschnitt 2 Problemfälle
Vorlagenprogrammierung Diskussionen Lua Unterseiten
Modul Deutsch

Modul: Dokumentation

Feedback

Bearbeiten

Gute Idee, aber das Beispiel mit Weg am Friedhof ist nicht überzeugend. Aus Sicht des Benutzers kann nur der sichtbare Teil (d.h. Weg am Friedhof) für die Sortierung der Adresse beitragen. Niemand würde das unter F suchen. Man sollte generell alle Links entfernen, bevor die Adresse mit führenden Nullen aufgeblasen wird. lg --Herzi Pinki (Diskussion) 16:06, 18. Mär. 2015 (CET)Beantworten

@Herzi Pinki: Danke für den Hinweis, das Beispiel ist auch aus diversen anderen Gründen blöd. Untendrunter steht jetzt eine schönere Tabelle.--Cirdan ± 21:56, 6. Feb. 2016 (CET)Beantworten
@Cirdan:, danke für die Erinnerung und die Umsetzung. Ich hätte zu deinem Test noch drei Anmerkungen und eine Bitte:
  • O2-Platz 4 - Osub2sub-Platz00000004 - besser ohne sub: O2-Platz00000004 (alle tags raus, weil für den Benutzer nicht sichtbar, detto eventuelle <ref>s am Ende entfernen.)
  • bei Hulsenstrasse00000034b würde ich das 'b' weglassen, d.h. alles was nach dem Trenner kommt (, / bis - ), führt so sicher zu irgendwelchen unerwarteten Sortierungen
  • Aufblasen auf 8 numerische Stellen ist großzügig (kommen Hausnummern > 9999 vor?), mE würden 5 auch reichen.
  • wenn du eine vorgestellte Ortspräposition wie 'vor', 'neben', 'bei', 'hinter', 'zwischen' (ev. käme da noch was) ignorieren könntest, würde das den Wert der Funktion nochmals erhöhen.
lg --Herzi Pinki (Diskussion) 22:15, 6. Feb. 2016 (CET)Beantworten
@Herzi Pinki: Das „sub“ rauszunehmen macht die Programmierung deutlich komplizierter und hat kaum einen Effekt. In den seltenen Fällen, wo ein Tag innerhalb des Straßennamens vorkommt, wird dann ggf. die Straße falsch einsortiert, innerhalb der Straße hat es aber keinerlei Einfluss. Daher würde ich hier warten, bis irgendwann ein Lua-Modul verfügbar ist, das konsequent und komplett Wiki-Markup entfernt.
Die Buchstaben nach den Zahlen habe ich absichtlich drin gelassen, weil es sonst zu Problemen kommt, wenn die Hülstenstraße 3a und die Hülsenstraße 3b beide in einer Liste auftauchen. Die müssen ja trotzdem richtig sortiert werden. Ich sehe was du meinst. Es wird immer nach der ersten auftretenden Hausnummer sortiert, Trennzeichen schneide ich (wie man in der Tabelle sieht) schon ab. Allerdings gibt es dort sehr kreative Lösungen wie zum Beispiel ein Semikolon als Trenner, das werde ich nach und nach ergänzen, wenn es auffällt.
Die vorgestellten Präpositionen kann ich denke ich realisieren, da muss ich aber erst nochmal ein bisschen überlegen und herumspielen. Einfache Lösungen wie „alles bis zum ersten Großbuchstaben abschneiden“ scheitern an häufigen Verwendungen von „ohne Anschrift“ oder „außerhalb der Ortslage“, die dann falsch einsortiert würden. Aber ich denke, da findet sich eine Lösung.--Cirdan ± 22:23, 6. Feb. 2016 (CET)Beantworten
  1. „Daher würde ich hier warten, bis irgendwann ein Lua-Modul verfügbar ist, das konsequent und komplett Wiki-Markup entfernt.“
  2. Persönlich würde ich grundsätzlich zwischen Straßennname und Hausnummer ein Leerzeichen setzen, und sei es zur besseren optischen Kontrolle.
LG --PerfektesChaos 22:52, 6. Feb. 2016 (CET)Beantworten
@PerfektesChaos, Herzi Pinki: Danke euch beiden, ich habe jetzt die Anregungen umgesetzt. Ref-Tags am Ende sollten keine Probleme machen, aber zumindest in Denkmallisten ohnehin nicht auftreten.--23:03, 6. Feb. 2016 (CET)Beantworten

@PerfektesChaos: getPlain macht bei Links Schwierigkeiten: {{#invoke:Text|getPlain|[[Bundesplatz]]}}Bundesplatz. Ist das gewollt oder ein Fehler? (Ich habe jetzt, da das natürlich diverse Listen zerschießt, zusätzlich noch die alte Methode wieder eingebaut.--Cirdan ± 15:44, 8. Feb. 2016 (CET)Beantworten

  • Text #getPlain sagt explizit: „Entferne Wikisyntax (ausgenommen Vorlagen): Kommentare, Tags, Kursiv-/Fettschrift, nbsp“
  • Wir hätten aber auch noch:
    • WLink #getPlain – „Löse alle Verlinkungen im Text auf und ersetze durch die Linktitel“.
    • Das sind zwei verschiedene Aufgaben; kann ja sein, dass man den Original-Text haben möchte, bloß ohne Verlinkungseigenschaft; oder mit Verlinkung, aber ohne Markup und Kommentare.
  • Wenn du sowieso den Fehlerfall (kaputte Bibliothek) nicht abfängst, was zugegebenermaßen kaum Konsequenzen hat, wenn man das Resultat unsichtbar in einem Sortierschlüssel verschwinden lässt, dann braucht es auch weder pcall() noch lucky noch happy.
    • Dann hättest du initialisierte Bibliotheken bereits nach den folgenden Anweisungen:
local Sort  = require( "Module:Sort" ).Sort()
local Text  = require( "Module:Text" ).Text()
local WLink = require( "Module:WLink" ).WLink()
LG --PerfektesChaos 22:48, 9. Feb. 2016 (CET)Beantworten
@PerfektesChaos: Vielen Dank für die ausführliche Erklärung, ich habe das jetzt so umgesetzt. (Jetzt sehen die Moduleinbindungen auch eher so aus, wie ich das gewohnt bin.) Damit ist auch direkt der Wunsch von Herzi Pinki umgesetzt, nur den sichtbaren Teil des Links anzuzeigen.--Cirdan ± 22:59, 9. Feb. 2016 (CET)Beantworten
Müllerstraße Mullerstrasse
Zeil 48 Zeil 00048
Straße des 17. Juni 135 Strasse des 17. Juni 00135
Königsstraße 17c Konigsstrasse 00017c
Ringstraße (West) 99 Ringstrasse (West) 00099
Bundesplatz Bundesplatz
O2-Platz 4 O2-Platz 00004
Hülsenstraße 34, 35b Hulsenstrasse 00034
Kanalstraße 12/14d/16

= [[Kanalstraße (Neustadt)|Kanalstraße]] 12/14d/16

Kanalstrasse 00012
Steinweg 8c bis 24 Steinweg 00008c
Hackländerstraße 4, 5f und 12 Hacklanderstrasse 00004
Downing Street No. 10 Downing Street No. 00010
Gumpendorfer Straße 109 / Kurt Pint-Platz Gumpendorfer Strasse 00109
Gumpendorfer Straße 54 (Altbau) Gumpendorfer Strasse 00054
Gumpendorfer Straße 54 (ident mit Blümelgasse 1 ) Gumpendorfer Strasse 00054

Gern geschehn …

Bearbeiten

… aber eine klein Panne ist noch drin, oder der Kommentar passt nach den Löschungen nicht mehr:

  -- Module:Sort ist irgendwie putt. Dann halt ohne.

Das stand als Alternativlösung in einer Abfrage, ob Sort eine table sei, und falls nicht, dann wurde auf deinen bisherigen Code zurückgegriffen.

LG --PerfektesChaos 19:23, 4. Feb. 2016 (CET)Beantworten

2 Problemfälle

Bearbeiten

Hallo, mir sind zwei Problemfälle über den Weg gelaufen:

{{#invoke:AdressenSort|convert|1=Gumpendorfer Straße 54 (ident mit Blümelgasse 1)}}: Gumpendorfer Strasse 00054
{{#invoke:AdressenSort|convert|Gumpendorfer Straße 109 / Kurt Pint-Platz}}: Gumpendorfer Strasse 00109
{{#invoke:AdressenSort|convert|Ringstraße (West) 99}}: Ringstrasse (West) 00099

Lösungsvorschlag:

  • alle Klammern hinter Ziffern können ignoriert werden. Das hilft beim Beispiel Ringstraße (West) 99 (Klammer vor Ziffer, Klammer wird nicht ignoriert), löst obigen Fall 1. Ein neues Problem allerdings wäre dann Straße des 17. Mai (West) 99 - falls es sowas gibt.
  • alles hinter / kann ignoriert werden. Entweder ist das ein Zusatz, eine alternative Identadresse / Eckadresse, oder eine Hausnummer nach dem Schema 5/6. Löst obigen Fall 2. / sollte im Straßennamen mE nicht vorkommen.

statt

local adresse = rohadresse
:gsub(", %d*%a*",""):gsub(" bis %d*%a*", ""):gsub(" und %d*%a*", ""):gsub("/%d*%a*",""):gsub("; %d%a*", "")

müsste es dann heißen:

local adresse = rohadresse:gsub("/.*",""):gsub("(%d.*)%(.*%)","%1")
:gsub(", %d*%a*",""):gsub(" bis %d*%a*", ""):gsub(" und %d*%a*", ""):gsub("; %d%a*", "")

Bitte um Mitdenken und Korrekturen. lg --Herzi Pinki (Diskussion) 20:23, 15. Mär. 2017 (CET)Beantworten

@Herzi Pinki: Den ersten Fall habe ich eingebaut (siehe Test-Tabelle oben), den zweiten Fall bekomme ich nicht hin.--Cirdan ± 13:51, 2. Sep. 2017 (CEST)Beantworten
Hat doch geklappt, jetzt werden deine Fälle auch korrekt bearbeitet.--Cirdan ± 14:04, 2. Sep. 2017 (CEST)Beantworten
Merci vielmals --Herzi Pinki (Diskussion) 17:01, 2. Sep. 2017 (CEST)Beantworten