Benutzer:StefanL/Kategorietool

aus Wikipedia, der freien Enzyklopädie

Dieses ist ein Vorschlag für ein Tool zur Kategorieanzeige auf Basis der Superkategorien (siehe [[Wikipedia Diskussion:Kategorien#Superkategorien zur Kategorisierung von Kategorien).

Das Tool sollte vom editierbaren Teil jeder Kategorie aus verlinkt sein, wobei dem Tool Basisinformation mitgegeben werden kann.

Die Auswahl der darzustellenden Artikel wird durch einen primeren und sekundären Filter eingestellt.

Primärer Filter

Zur Einstellung des primären Filters wird im linken Fensterdrittel ein Kategoriebaum ähnlich CategoryTree, wobei die verlinkende Kategorie die Basis darstellt, angezeigt. Jede Kategorie im Baum erhält eine Checkbox, die drei Zustände annehmen kann: ausgewählt (Haken), nicht ausgewählt (leer) sowie unspezifiziert (grau mit oder ohne Haken). Bei unspezifizierter Einstellung gilt die Kategorie als implizit ausgewählt, wenn mindestens eine direkt übergeordnete Kategorie /ggf. implizit) ausgewählt ist. Genau in diesem Fall erscheint ein Haken im grauen Feld.

Sekundärer Filter

Zur Auswahl des sekundären Filters wird im mittleren Fensterdrittel ein Baum beginnend mit Kategorie:!Kategorie ähnlich wie bei CategoryTree angezeigt, der jedoch zunächst nur die Superkategorien enthält. Zu jeder Superkategorie im Baum gibt es zwei Checkboxen, um diese als Filter bzw. Als Sortierkriterium auszuwählen. Wird im Baum auf eine (Super-)Kategorie geklickt, so wird sie ausgeklappt. Zusätzlich werden in den rechten Fensterdrittel alle normalen Kategorien (d.h. alle Kategorien, deren Name nicht mit "!" beginnt) aufgelistet. Zu jeder dort gelisten normalen Kategorie gibt es eine Checkbox, um diese als Filter auswählen zu können. Wird in dieser Darstellung direkt auf eine Kategorie geklickt, wird diese in der Art geöffnet, dass das rechte Fensterdrittel jetzt ihre Unterkategorien darstellt. Derart als Filter ausgewählte oder geöffnete Kategorien werden in den im mittleren Fensterdrittel dargestellen (Super-)Kategoriebaum mit aufgenommen und dort zur auffälligeren Unterscheidung von den Superkategorien kursiv dargestellt. Dabei erhalten sie eine Checkbox, die anzeigt, ob sie als Filter ausgewählt sind.

Scan

Es werden alle vom primären Filter ausgewählten Kategorien vereinigt und die Schnittmenge mit den vom sekundären Filter ausgewählten Kategorien gebildet. Sind im sekundären Filter mehrere Kategorien als Filter ausgewählt wird deren Schnittmenge normalerweise verwendet. Wenn allerdings eine ubergeordnete Superkategorie zusätzlich als Filter oder Sortierkriterium gewählt ist, wird bei den untergeordneten Kategorien stattdessen die Vereinigungsmenge verwendet (ansonsten wäre das sortieren oder filtern ohnehin sinnlos). Beim sekundären Filter werden Elemente von Unterkategorien implizit und rekursiv mit als Element der übergeordneten Kategorie angesehen.

Bei der Ausgabe der gesamten Schnittmenge kann die Ausgabe ggf mehrstufig sortiert werden. Ist eine Superkategorie als Sortierkriterium ausgewählt, werden die in die Superkategorie direkt oder indirekt eingeordneten normalen Kategorien gesucht und nach diesen die Liste in Abschnitte unterteilt. Es ist zu beachten, das die den normalen Kategorien untergeordneten Kategorien per Definition nicht implizit in die Superkategorie eingeordnet sind.

Werden mehrere Superkategorien als Sortierkriterium ausgewählt, bestimmt die Reihenfolge, in der sie ausgewählt wurden, in welcher Reihenfolge die Liste in Abschnitt untergliedert wird.

Gedanken zur Inplementation

Zumindest der Kategoriebaum der Superkategorien sollte gecached sein. Eine Implementation, die vom normalen Benutzern verwendet wird, sollte auch für die gesamte Kategorisierungsinformation eine für diese Anwendung optimierte Slavedatenstrukturen haben. Es ist dann auch eine Programmiersprache zu verwenden, die eine effiziente Nutzung der Prozessorleistung ermöglicht. Auch eine Skalierbarkeit durch die Möglichkeit zur verwendung mehrerer Server zur Kategoriedarstellung sollte gegeben sein.