Benutzer Diskussion:Divisor/Vorlage:Koordinaten Text Artikel

Letzter Kommentar: vor 18 Jahren von Divisor in Abschnitt Alternative Architektur

Hier bitte nur Diskussionen zur Architektur, zur Performace und zum Benutzerinterface meiner Koordinaten Vorlagen.

Diskussionenbeiträge zur Dokumentation meiner Koordinaten Vorlagen bitte nur auf Benutzer Diskussion:Divisor/Vorlage:Koordinaten Dokumentation posten.
Diskussionenbeiträge zum Aussehen der einzelnen Elemente bitte nur auf Benutzer Diskussion:Divisor/Vorlage:Koordinaten Text bzw. Benutzer Diskussion:Divisor/Vorlage:Koordinaten Artikel posten.

Die aktuelle Dokumentation zum Koordinaten System befindet sich auf der Seite Benutzer:Divisor/Koordinaten System Dokumentation

Die aktuelle (generische) Dokumentation des Benutzerinterfaces befindet sich auf der Seite Benutzer:Divisor/Vorlage:Koordinaten Dokumentation

Architekur

Bearbeiten

Die Vorlagen Koordinaten_Korrektur und Koordinaten_Fehler wurden hinzugefügt. (-Performance) -- Divisor 20:08, 6. Okt 2006 (CEST)

Die Vorlagen Koordinaten_NW und Koordinaten_Namen wurden hinzugefügt. (++Performance) -- Divisor 13:39, 7. Okt 2006 (CEST)

Die Vorlage Koordinaten wurde aus dem System entfernt. Ihre Aufgaben werden von den Vorlagen Koordinaten_Text, Koordinaten_Artikel bzw. Koordinaten_Text_Artikel übernommen. (+Performance, -Vorlagenzahl, +Code-Redundanz) -- Divisor 19:35, 7. Okt 2006 (CEST)

Die Vorlage Koordinate_String wurde aus dem System entfernt. Ihre Aufgaben werden von der Vorlage Koordinaten_String übernommen. (-Performance, -Vorlagenzahl, +Code-Redundanz) -- Divisor 14:56, 8. Okt 2006 (CEST)

Alternative Architektur

Bearbeiten

Ich habe das Koordinaten-System mit den Vorlagen Koordinaten, Koordinaten_Berechnung und Koordinaten_Darstellung neu implementiert. Die logische Architektur wurde etwas, die Vorlagen-Architektur komplett verändert. Die Berechnung ist nun in einzelne Blöcke, sogenannte "Sektionen", aufgeteilt. Von diesen Sektionen können sich beliebig viele in einer einzigen Vorlagen befinden. Gegenzeitige Aufrufe erfolgen bei Bedarf rekursiv.

Durch diese Neuorganisation ist es möglich je nach Wunsch

  • eine bessere Performance bei einer höheren Vorlagenzahl (also weniger Sektionen pro Vorlage),
  • eine geringere Vorlagenzahl (also mehr Sektionen pro Vorlage) bei schlecherer Performance

zu erreichen.

Zur Zeit werden drei Vorlagen (vier mit KoordinateURL) bei einer Performance von etwa zwei Sekungen pro Koordinaten-Berechnung verwendet.

Weiters verwende ich in diesem System eine neues type/region/scale Parsersystem. Es arbeitet mit den Argumenten type, type-arg, region, subregion und scale. Die Verwendung mit unbenannten Argumenten sieht so aus:

<type>|<type-arg>|<region>|<subregion>|<scale>.

Bei type, region und subregion muss es sich dabei um nichtnumerische Strings handeln, die Argumente type-arg und scale müssen numerische Strings sein. Jedes Argument kann weggelassen oder leergelassen werden solange die daraus resultierende Argumentkette noch vernünftig interpretierbar ist.

Beispiel: 15|12|N|10|22|57|O|city|1000|12500

-- Divisor 19:21, 14. Okt. 2006 (CEST)Beantworten

Performance

Bearbeiten

Ich denke ich habe ein akzeptables Gleichgewicht zwischen geringer Vorlagenzahl, geringer Redundanz und guter Performace erreicht. -- Divisor 18:17, 5. Okt 2006 (CEST)

Performace durch effizienere Architekur verbessert. (wahrscheinlich etwa um den Faktor 2) -- Divisor 13:39, 7. Okt 2006 (CEST)

Benutzerinterface

Bearbeiten

Dokumentation

Bearbeiten

Die generische Dokumentation des Benutzerinterfaces befindet sich in der Vorlage Koordinaten_Dokumentation.

Die Beiträge bezüglich der darin beschriebenen Schnittstelle bitte nicht dort sondern nur hier.

-- Divisor 18:17, 5. Okt 2006 (CEST)

Erst mal nicht's auszusetzten

Bearbeiten

Also zu aller erst hätte ich daran erst mal nichts auszusetzen. Die Praktikabilität (kann man das so schreiben?) also die Handhabung der Vorlagen scheint äußerst einfach, da sie alle Datenvormate gleichermaßen verarbeiten und die Koordinaten dann auch noch einheitlich ausgeben. Schon nur wegen dem ewigen Hin und Her wegen E u. O, sowie n.Br. u. N und ö.L u. O finde ich Die Vorlagen einwandfrei, da sie es dem Anwender ungemein einfach machen.


Monsterxxl <°))))> 19:26, 5. Okt 2006 (CEST)

Interfaceänderung (abwärtskompatibel)

Bearbeiten
  • Die Richtungserkennung macht keine Probleme mehr, falls an einer type-, region- oder scale-Position eine Himmelsrichtung (N,S,W,O oder E) steht.
Argumente Ergebnis
33.556|N|143|O|mountain|E|125000 [[[:Vorlage:KoordinateURL]]33.556_N_143_E_type:montain_region:E_scale:125000 ]
16|34|S|18|33|E|landmark|W|25000 [[[:Vorlage:KoordinateURL]]16.566666666667_S_18.55_E_type:landmark_region:W_scale:25000 ]
25|18|45|S|179|20|45|W|city(12000)|S|50000 [[[:Vorlage:KoordinateURL]]25.3125_S_179.34583333333_W_type:city(12000)_region:S_scale:50000 ]
  • Die Vorlagen interpretieren nun auch in falscher Reihenfolge geschriebene Koordinaten-Argumente korrekt.
Argumente Ergebnis
34|W|16.55|N [[[:Vorlage:KoordinateURL]]16.55_N_34_W ]
5|16|20|O|2|S [[[:Vorlage:KoordinateURL]]2_S_5.2722222222222_E ]
18|E|2|20|55|N [[[:Vorlage:KoordinateURL]]2.3486111111111_N_18_E ]
18|32|55|O|89|58|39|N [[[:Vorlage:KoordinateURL]]89.9775_N_18.548611111111_E ]

-- Divisor 20:08, 6. Okt 2006 (CEST)

Interfaceänderung (abwärtskompatibel)

Bearbeiten
  • Benannte type-, region- oder scale-Argumente können nun zusammen mit unbenannten Positionsargumenten eingesetzt werden.
Argumente Ergebnis
18.66|-20.8|type=mountain|region=DE|scale=50000 [[[:Vorlage:KoordinateURL]]18.66_N_20.8_E_type:mountain_region:DE_scale:50000 ]
33.6|N|15|W|type=landmark|region=AT|scale=25000 [[[:Vorlage:KoordinateURL]]33.6_N_15_W_type:landmark_region:AT_scale:25000 ]
22|55|18.6|S|158|22|0|E|type=city(3000)|region=CH|scale=12500 [[[:Vorlage:KoordinateURL]]22.921833333333_S_158.36666666667_E_type:city(3000)_region:CH_scale:12500 ]

-- Divisor 13:39, 7. Okt 2006 (CEST)

Key-Value-Pairs

Bearbeiten

Ich plädiere seit langem für die Key-Value-Pairs. Sehe nun keinen Grund, nicht auch die Koordinaten so zu codieren ("|point= 45.256 -110.45|..."), wie das georss.org vormacht. Und für einen Scale-Ersatz in der Art 'radius' (in Meter), der an die Visualisierungs-SW anpassbar und besser nachnutzbar ist, habe ich mich auch schon stark gemacht. Wie weiter? -- Geonick 19:42, 8. Okt 2006 (CEST)

Key-Value-Pairs in jener Form wie du sie vorschlägst, sind mit dem derzeit von Wikipedia benutzten Mediawiki-System nicht praktikabel. Das liegt daran, dass hier zwei Werte (45.256 und -110.45) zu einem Argument (45.256 -110.45) zusammengefasst werden. Mein Koordinaten System benötigt die beiden Werte aber einzeln, um sie schließlich zu verschiedenen Formaten (Stringformat und Linkformat) weiterverarbeiten zu können. Derzeit ist es in Wikipedia aber leider nicht möglich, den Inhalt eines Arguments einer Vorlage in seine Einzelteile aufzuspalten. Es gibt zwar die Mediawiki Extension StringFunctions, welche dies ermöglichen würde, aber Wikipedia verwendet sie derzeit nicht. -- Divisor 16:19, 9. Okt. 2006 (CEST)Beantworten

Details hinterfragt

Bearbeiten
  • Warum wird der Link immer in Dezimalzahlen umgewandelt, auch wenn das gar nicht nötig ist? Statt 60_30_8_N_34_8_25_E wird beispielsweise eher unlesbar 60.5022222222_N_34.1402777778_E angezeigt.
  • Warum funktionieren die Links nicht? Siehe auch: Vorlage:KoordinateURL
  • Ist es wirklich sinnvoll, die Sekunden und Minuten auszublenden, wenn sie gleich Null sind? Statt 60° 30' 8" N, 34° 0' 0" O entsteht so ein sogar etwas schlechter lesbares 60° 30' 8" N, 34° O.
  • Warum werden bei der Eingabe von Kommazahlen manchmal Sekunden angezeigt und manchmal nicht? Beispiel: Die Eingabe von 60.50|N|30.51|O führt zur Ausgabe von 60° 30' N, 30° 30' 36" O. Wäre es nicht eventuell sinnvoll, in solchen Fällen immer Minuten anzuzeigen (auch wenn sie Null sind), aber nie Sekunden?
  • Die ersten 6 Parameter sind noch vergleichsweise gut nachvollziehbar. Alles dahinter wird zu einer fehleranfälligen Ansammlung von senkrechten Strichen. Wenn man sich dabei verzählt, merkt man das oft gar nicht. Worst-Case-Beispiele:
    • 18|6|N|23|3|W|12500 wird zu [[[:Vorlage:KoordinateURL]]18.1_N_23.05_W_type:12500 ]
    • 18|6|N|23|3|W||12500 wird zu [[[:Vorlage:KoordinateURL]]18.1_N_23.05_W_region:12500 ]
    • 18|6|N|23|3|W||||12500 wird zu [[[:Vorlage:KoordinateURL]]18.1_N_23.05_W ]
  • Beim Lesen von 2|18|6|N|123|W||AF|12500 ist völlig unklar, was die Abkürzung und die Zahl dahinter zu bedeuten haben.

--TM 11:39, 10. Okt. 2006 (CEST)Beantworten


Zur Dezimalzahlumwandlung: Die Dezimalzahlumwandlung ist notwendig, um das Interface von:
  • jenem Teil des Koordinaten-Systems welcher für die Interpretations der Benutzereingabe zuständig ist
    ("vor" Koordinaten_Display) und
  • jenem Teil welcher für die Erstellung der Ausgabe verantwortlich ist
    (Koordinaten_Display und alles "danach")
möglichst schlank zu halten. Bei der Ausgabe wird dann die Sexagesimaldarstellung des sichtbaren Strings aus den beiden Dezimalzahlen errechnet. Beim zugehörigen Link ist dies glücklicherweise nicht notwendig und so habe ich die Dezimalzahldarstellung dort beibehalten.
Zu den nicht funktionierenden Links: Problem unter Zuhilfenahme von Vorlage:KoordinateURL behoben.
Zur Sekunden- und Minutenausblendung: Ich weiss es nicht. Und ehrlich gesagt: Es ist mir auch ziemlich egal. Sollten sich in diesem Forum eindeutige Präferenzen bezüglich eines ganz bestimmten "Wann_genau_lasse_ich_die_0'_bzw._0"_weg_und_wann_nicht"-Systems zeigen, so werde ich dieses System gerne implementieren.
Zur Kommazahl-Sekunden-Darstellung: Weil auch bei der Eingabe als Dezimalzahl die Sekunden bisweilen mal einfach nur null sind und so ausgeblendet werden. (60,50 dezimal sind 60° 30' 0" N sexagesimal)
Zur fehleranfälligen Ansammlung von senkrechten Strichen: Dies ist nun einmal der Preis für die Verwendung eines parameterlosen Vorlagen-Interfaces. Aber glücklicherweise gibt es auch noch andere Möglichkeiten, wie etwa die Verwendung der Vorlage ausschließlich mit benannten Parametern:
{{Benutzer:Divisor/Vorlage:Koordinaten_Text
|lat_deg = 18
|lat_min = 6
|lat = N
|lon_deg = 23
|lon_min = 3
|lon = W
|scale = 12500
}}
Alternativ kann auch ein hybrides Interface verwendet werden:
{{Benutzer:Divisor/Vorlage:Koordinaten_Text|18|6|N|23|3|W
|scale = 12500
}}
Zur unklaren Abkürzung mit Zahl: Auch hier kann durch die Verwendung eines hybriden Interfaces Abhilfe geschaffen werden:
{{Benutzer:Divisor/Vorlage:Koordinaten_Text|12|18|6|N|123|W
|region = AF
|scale = 12500
}}
-- Divisor 18:31, 10. Okt. 2006 (CEST)Beantworten
Zur Klarstellung: Ich habe nichts davon, wenn du deine Arbeit verteidigst. Was deine Vorlagen tun und warum, weiß ich schon. Ich bin niemand, der Hilfe braucht. Ich will nur, dass du über die gestellten Fragen nachdenkst und deine Erkenntnisse zur Verbesserung der Vorlagen nutzt. --TM 20:11, 10. Okt. 2006 (CEST)Beantworten
Zur Kenntnis genommen und abgespeichert :-) -- Divisor 20:43, 10. Okt. 2006 (CEST)Beantworten

Lesbarkeit

Bearbeiten

Verzeih meine Skepsis, aber ich sehe nicht so Recht, welchen Vorteil deine Vorlagen gegenüber der bisherigen Schreibweise haben sollen. Jetzt schreibt man:
51_09_29_N_14_35_29_E_type:city(2601)_region:DE-SN
Bei dir schreibt man:
51|09|29|N|14|35|29|E|type=city(2601)|region=DE-SN
Dass man bei dir Teile davon weglassen kann, macht das Ganze kürzer, aber nicht besser lesbar. --TM 22:45, 8. Okt 2006 (CEST)

Jetzt schreibt man:
51_09_29_N_14_35_29_E_type:city(2601)_region:DE-SN|51°&nbsp;9'&nbsp;29"&nbsp;N, 14°&nbsp;35'&nbsp;29"&nbsp;O
Bei mir schreibt man:
51|09|29|N|14|35|29|E|city(2601)|DE-SN
-- Divisor 17:40, 9. Okt. 2006 (CEST)Beantworten
Der größte Vorteil deiner Vorlagen ist gleichzeitig ihr größter Nachteil: Man kann die Ausgabe nicht steuern. Die Vorlage entscheidet selbst, wie die Koordinaten anzuzeigen sind. Kommastellen werden als Minuten angezeigt usw. Leider ist das auch der beinahe einzige Vorteil. Die eigentliche Koordinateneingabe ist auch mit den alten Vorlagen flexibel genug (man kann Kommastellen eingeben, Minuten und Sekunden weglassen etc.). Würdest du jetzt auch noch ein „String-Formatierungs-System hinzuimplementieren“, könnte man auch gleich bei den alten Vorlagen bleiben. Abgesehen davon lösen deine Vorlagen ein Problem überhaupt nicht: Der Quelltext (z. B. {{Koordinaten Text Artikel|51|09|29|N|14|35|29|E|city(2601)|DE-SN|12500}}) ist weder in der alten noch in deiner Version lesbar. Gerade das ist aber eines der höchsten Wiki-Prinzipien. --TM 11:57, 10. Okt. 2006 (CEST)Beantworten
Der Quelltext {{Koordinaten Text Artikel|51|09|29|N|14|35|29|E|city(2601)|DE-SN|12500}} ist sehr wohl lesbar, seine Lesbarkeit ist bloß nicht gerade optimal. Dafür ist er kurz und das zugehörige Sprichwort spare ich mir jetzt. Sollte dagegen ein besser lesbarer, aber dafür längerer Quelltext erforderlich sein, so kann stattdessen der zum obigen Quelltext äquivalente Quelltext:
{{Benutzer:Divisor/Vorlage:Koordinaten Text Artikel
|lat_deg = 51
|lat_min = 09
|lat_sec = 29
|lat = N
|lon_deg = 14
|lon_min = 35
|lon_sec = 29
|lon = E
|type = city(2601)
|region = DE-SN
|scale = 12500
}}
verwendet werden. (Über die konkrete Benennung der Parameter (lat_deg, lat_min, ...) könnte man gewiss lange diskutieren, aber das ist eine andere Sache.)
-- Divisor 17:18, 10. Okt. 2006 (CEST)Beantworten

Wirklich „lesbar“ würde ich weder das eine noch das andere nennen wollen. Lesbar wäre vieleicht:

{{Koordinate Text Artikel
|Koordinate = 51° 09' 29" N 14° 35' 29" O
|Typ        = Stadt
|Einwohner  = 2601
|Region     = DE-SN
|Maßstab    = 12500
}}

Aber so etwas ist mit der Vorlagenprogrammierung allein natürlich nicht möglich. --TM 17:32, 10. Okt. 2006 (CEST)Beantworten

Was deine erste Aussage anbelangt so muss ich dir zustimmen, beide Möglichkeiten haben ihre Probleme. Was deine zweite Aussage anbelangt so kann ich dir nur bezüglich der Koordinatendatenextraktion aus dem String 51° 09' 29" N 14° 35' 29" O zustimmen. Was allerdings die anderen Elemente deiner Idealversion anbelangt so ließe sich da durchaus etwas machen.
Zu den deutsche Parameternamen: Zweisprachigkeit zu meinem Vorlagen-System hinzuzuimplementieren ist nicht wirklich ein Problem. Aber die konkrete Implementierung hebe ich mir für später auf, um das noch in der Entwicklungsphase befindliche System nicht unnötig zu überfrachten.
Zu dem deutsch benannten Typ-Parameter-Inhalt: siehe letzte Stellungnahme
Zu dem seperaten benannten Typ-Argument: Ich arbeite bereits an einem System, welches derartige Angaben sowohl bei benannten als auch bei unbenannten Parametern ermöglicht. Unglücklicherweise bin ich allerdings derzeit mehr am Diskutieren als am Implementieren. Entsprechende Änderungen am Koordinaten-System werden also vorraussichtlich noch etwas auf sich warten lassen.
Zur kompakten Eingabe der Koordinaten und lesbaren Eingabe der restlichen Elemente: Dies ist bereits möglich:
{{Benutzer:Divisor/Vorlage:Koordinaten Text Artikel
|         51|09|29|N|14|35|29|O
|type   = city(2601)
|region = DE-SN
|scale  = 12500
}}
-- Divisor 18:56, 10. Okt. 2006 (CEST)Beantworten
Nach allem, was ich bei der Programmierung „meiner“ Vorlage:Infobox Ort in Deutschland gelernt habe, bin ich davon überzeugt, dass diese Problematik mit den Bordmitteln der Mediawiki-Software nicht endgültig zu lösen ist. Sonst kommt man immer nur vom Regen (Unterstriche) in die Traufe (senkrechte Striche). Ein verwandtes Problem, das hier noch gar nicht angesprochen wurde, ließe sich ebenfalls nur mit einer Erweiterung lösen: Die (barrierearme) Darstellung von Koordinaten auf einer (anklickbaren) Karte. --TM 19:59, 10. Okt. 2006 (CEST)Beantworten
Hier eine Testversion einer Eingabeform, die ich als vergleichsweise benutzerfreundlich bezeichnen würde: http://maettig.com/wikipedia/koordinaten.html --TM 01:32, 12. Okt. 2006 (CEST)Beantworten