Diese Vorlage dient der automatischen und einheitlichen Kategorisierung in einem definierten und strukturell einheitlichem Kategoriebaum in Abhängigkeit von einer ISO Regionsangabe. Die Vorlage ist für die automatische Vergabe von Kategorien nach einem Schema aus Infoboxen heraus im Themenbereich der Geografie gedacht.

Kopiervorlage

{{ISO Kat|Region-ISO=|Kat-Root=|Kat-Schema=in|Kat-Kontinent=ja|maxlevel=2}}

Beispiele

Vorlage Ist-Ergebnis (Links mehrfach, Kats nur einfach) Soll-Ergebnis
{{ISO Kat|Region-ISO=AT-5|Kat-Root=Berg|Kat-Schema=in|maxlevel=0}} Kategorie:Berg in Österreich Kategorie:Berg in Österreich
{{ISO Kat|Region-ISO=AT-5|Kat-Root=Berg|Kat-Schema=in|maxlevel=1}} Kategorie:Berg im Land Salzburg Kategorie:Berg im Land Salzburg
{{ISO Kat|Region-ISO=AT-5|Kat-Root=Berg|Kat-Schema=in|maxlevel=2}} Kategorie:Berg im Land Salzburg Kategorie:Berg im Land Salzburg
{{ISO Kat|Region-ISO=AT-5|Kat-Root=Berg|Kat-Schema=in}} Kategorie:Berg im Land Salzburg Kategorie:Berg im Land Salzburg
{{ISO Kat|Region-ISO=AT-5/AT-7|Kat-Root=Berg|Kat-Schema=in|maxlevel=0}} Kategorie:Berg in ÖsterreichKategorie:Berg in Österreich Kategorie:Berg in Österreich
{{ISO Kat|Region-ISO=AT-5/AT-7|Kat-Root=Berg|Kat-Schema=in|maxlevel=1}} Kategorie:Berg im Land SalzburgKategorie:Berg in Tirol Kategorie:Berg im Land Salzburg, Kategorie:Berg in Tirol
{{ISO Kat|Region-ISO=AT-5/AT-7|Kat-Root=Berg|Kat-Schema=in|maxlevel=2}} Kategorie:Berg im Land SalzburgKategorie:Berg in Tirol Kategorie:Berg im Land Salzburg, Kategorie:Berg in Tirol
{{ISO Kat|Region-ISO=AT-5/AT-7|Kat-Root=Insel|Kat-Schema=()|maxlevel=0}} Kategorie:Insel (Österreich)Kategorie:Insel (Österreich) Kategorie:Insel (Österreich)
{{ISO Kat|Region-ISO=AT-3|Kat-Root=Insel|Kat-Schema=()|Kat-Kontinent=ja|maxlevel=0}} Kategorie:Insel (Europa)Kategorie:Insel (Österreich) Kategorie:Insel (Österreich)
{{ISO Kat|Region-ISO=RU|Kat-Root=Insel|Kat-Schema=()|Kat-Kontinent=ja|maxlevel=0}} Kategorie:Insel (Russland) Kategorie:Insel (Russland), Kontinent nicht eindeutig
{{ISO Kat|Region-ISO=IT-MI|Kat-Root=Insel|Kat-Schema=()|Kat-Kontinent=ja|maxlevel=0}} Kategorie:Insel (Europa)Kategorie:Insel (Italien) Kategorie:Insel (Italien)
{{ISO Kat|Region-ISO=IT-MI|Kat-Root=Insel|Kat-Schema=()|Kat-Kontinent=ja|maxlevel=1}} Kategorie:Insel (Europa)Kategorie:Insel (Lombardei) Kategorie:Insel (Lombardei)
{{ISO Kat|Region-ISO=IT-MI|Kat-Root=Insel|Kat-Schema=()|Kat-Kontinent=ja|maxlevel=2}} Kategorie:Insel (Europa)Kategorie:Insel (Lombardei) Kategorie:Insel (Lombardei)

Schnittstellen

Für das Schema in ist es notwendig, sprachlich korrekt die Ortsangabe zu einer ISO Region zu definieren. Standardmäßig wird in region erzeugt, also etwa Pass in Österreich, Berg in Südtirol. Das passt für die meisten Regionen. Abweichungen etwa für die Türkei Pass in der Türkei können nur erzeugt werden, wenn in den entsprechenden Info ISO-3166-2 Vorlagen der Parameter in entsprechend versorgt wird (Bsp. für die Türkei).

Parameter

Parameter Beschreibung Beispiele
Region-ISO ISO Region in der üblichen Schrägstrichnotation, bis zu vier Regionen AT-5, AT, AT-7/DE-BY, AT-7/DE, AT-4/AT-5/AT-6
Kat-Root Name der Root-Kategorie, diese dient als Präfix für die Erzeugung der ISO gemäßen Kategorien Berg, See, …
Kat-Schema Schema der Kategorienamensgenerierung, Aufzähltyp. Mögliche Werte sind
in
()

Berg in Bayern
Berg (Bayern)
Kat-Kontinent Falls ja, wird auch die Kategorie für den Kontinent erzeugt. Doppelkategorisierung ist bei vielen geographischen Objekten üblich. Berg in Europa
maxlevel Beschränkt die maximale Tiefe der aus dem Kategoriebaum verwendeten Kategorien. So können etwa Flüsse ob ihrer Ausgedehntheit nur bis zu maxlevel = 1 hinunterkategorisiert werden. 0 (country), 1 (adm1st), 2 (adm2nd)
test Testparameter, falls gesetzt, unterdrückt er die Generierung der Kategorien und erzeugt nur den Text für die Kategorien.

Bedingungen

  • Es werden nur existierende Kategorien erzeugt. Falls eine fehlende Kategorie später angelegt wird, dann wird sie automatisch gefüllt (siehe aber Wikipediatypisches dynamisches Verhalten).
  • Existiert eine Kategorie auf unterster ISO 2 Ebene nicht, dann wird die passende Kategorie auf ISO 1 Ebene erzeugt, existiert sie auf Ebene 1 nicht, dann wird sie auf Ebene 0 erzeugt.
  • Die Generierung der Kategorienamen erfolgt mit der grammatikalisch richtigen Flexion. Also Berg in Tirol, aber Berg in der Steiermark, Berg auf den Philippinen, Berg in den Vereinigten Staaten

Einschränkungen

  • Die Vorlage dient der einheitlichen und dynamischen Kategorisierung gleichartiger Objekte. Mit den ISO 3166-2 Regionen definiert sie die maximale Kategorietiefe. Eine weitere Untergliederung in Einheiten unterhalb der untersten ISO-3166-2 Region kann von der Vorlage nicht geleistet werden und ist auch durch manuelle Kategorisierung nur mittels Doppelkategorisierung zu erreichen (oder durch Tricks in der Infobox).
  • Aus technischen Gründen erfolgt die Autokategorisierung des Kontinentbezugs nicht in der üblichen Reihenfolge von Speziellen zum Allgemeinen, sondern umgekehrt (eine Implementierung in Lua könnte diese Einschränkung aufheben).
  • Es ist keine individuell abweichende Sortierung der Kategorieeinträge möglich. Diese kann nur über DEFAULTSORT erreicht werden.

Wikipediatypisches dynamisches Verhalten

Änderungen an Vorlagen werden in der WP erst asynchron und damit je nach Last auch merklich zeitversetzt wirksam. Für Vorlage:ISO Kat spielen viele entkoppelte andere Vorlagen und Kategorien eine Rolle: In der Regel gibt es eine übergeordnete Infobox, in der Vorlage:ISO Kat verwendet wird, die von WP:GEO definierte Infrastruktur der Info ISO-3166-2-Vorlagen ist umfangreich (mehrere tausend Vorlagen), und dann sind da noch die Artikel in der Ziel-Kategorie (auch viele). Ein Purge auf die Artikel in der Ziel-Kategorie hilft, dieses asynchrone Verhalten zu beschleunigen.

Fehlersuche

Wenn die Vorlage nicht zur erwarteten Kategorisierung führt, dann liegt das meist an einem Nichtzusammenpassen der Konfigurationsparameter in den Untervorlagen von Vorlage:Info ISO-3166-2 und den Kategorienamen (Parameter in, Kurznamen Administrationsebene 0, 1, 2). Durch die automatische Propagierung an die nächsthöhere administrative Ebene spielen auch diese Info ISO-3166-2-Vorlagen mit (für Südtirol etwa von unten nach oben: Vorlage:Info ISO-3166-2:IT-BZ, Vorlage:Info ISO-3166-2:IT-32, Vorlage:Info ISO-3166-2:IT). Es lohnt eine Überprüfung, insbesondere bei Verschiebung / Umbenennung von betroffenen Kategorien und bei einer Änderung der regionalen Gliederung, die uns von außen vorgegeben wird (führt dann in der Regel zu einer Änderung der Info ISO-3166-2-Vorlagen und der Kategorien.

Oft kommt es in einer Kategorie zu einer Mischung aus autokategorisierten Artikeln (über die passende Infobox) und Artikeln ohne diese Infobox und damit ohne Autokategorisierung. Vorlage:ISO Kat|ISO Kat wirkt nur auf Artikel, die die Vorlage auch einbinden, die anderen Artikel müssen weiter manuell kategorisiert werden. Artikel ohne Infobox sind jedoch vielleicht auch Kandidaten für das Einfügen der fehlenden Infobox (und damit für die Autokategorisierung).

Jede Fehlersuche sollte das Wikipediatypische dynamische Verhalten mitbedenken. Ein Test der Konfiguration kann durch Purge eines der betroffenen Artikel erfolgen.

Kandidatensuche für fehlende Kategorien

Die Suche nach fehlenden Kategorien (mit einer genügend großen Anzahl an passenden Artikeln) kann über die Wartungskategorie Vorlage:ISO_Kat/Wartung/Autokat undefiniert erfolgen. Die Reihenfolge dort entspricht der Reihenfolge des Anlegens der Artikel, also die neu angelegten Artikel stehen unten.

Automatische Kategorisierung bzgl. einer bestimmten Kategorie

Der Umstieg von manueller auf automatische Kategorisierung für eine bestimmte Kategorie unter Verwendung von ISO Kat erfolgt am besten mittels folgender Schritte:

  • Anlegen der Kategorie gemäß dem in der Infobox definierten Namensschema (falls die Kategorie nicht schon existiert)
  • Löschen der manuell festgelegten Kategorie in einem der betroffenen Artikel. Der Artikel sollte nun in der neuen Kategorie aufscheinen. Bei vorher noch nicht manuell kategorisierten Artikeln hilft ein Purge.
  • Löschen der manuell festgelegten Kategorie in den restlichen betroffenen Artikeln. Natürlich nur in jenen, die eine passende Infobox mit Autokategorisierung haben.
    • HotCat zeigt automatisch generierte Kategorien ohne Aktionsbuttons an. D.h. Reste manueller Kategorisierung erkennt man daran, dass sie mit HotCat entfernt werden können. Durch die Magie der Autokategorisierung bleibt die Kategorie jedoch erhalten, diesmal dann ohne Aktionsbuttons.

Das Verfahren funktioniert analog, wenn eine Elternkategorie zu voll wird und auf untergeordnete administrative Einheiten aufgespalten werden soll.

Siehe auch

Design

Das Schema () ist einfach zu realisieren, es wird einfach der in den Info Vorlagen enthaltene name eingesetzt. (Bsp. für Niederösterreich: {{Info ISO-3166-2|code=AT-3|name}}=Niederösterreich) Für das Schema in muss eine korrekte Namensumsetzung irgendwo definiert werden, da dies grammatikalisch richtig nicht zu generieren ist. Die Vorlage Info ISO-3166-2 hat einen Schnittstellenparameter in, mit dem diese Flexion definiert werden kann. Diese liefert entweder den abgespeicherten Wert oder den Defaultwert zurück. Der Defaultwert ergibt sich als in name.

Der erzeugte Kategoriename wird einem Existenztest unterzogen. Wenn die Kategorie existiert, dann wird sie erzeugt, existiert sie nicht, dann erfolgt eine Wiederholung derselben Prozedur auf der nächsten ISO Ebene, maximal aber auf country/state-Ebene (level 0).

Designziel war ein schmales Interface.

Untervorlagen

  • Die Vorlage:ISO Kat ist die öffentliche Schnittstelle, sie macht die Parameterprüfung und die Aufspaltung der Region-ISO, falls mehrere Regionen durch / getrennt angeführt werden.
  • Die Vorlage:ISO Kat~ hat die gleiche Schnittstelle wie Vorlage:ISO Kat, erwartet in Region-ISO aber genau einen Wert.
  • Die Vorlage:ISO Kat~/KatName baut den Kategorienamen zusammen unter Beachtung des Kat-Schemas. Danach muss noch die Existenzprüfung erfolgen.
  • Die Vorlage:ISO Kat~/KatGen erzeugt die Kategorie (unter Berücksichtigung von test)