Kategorietiefe Beispiel

From ProWiki - Demo and Test Wiki

This is the latest revision of this page; it has no approved revision.

Eine Abfrage auf eine Kategorie findet standardmäßig auch die Seiten aller Unterkategorien. Dieses Beispiel zeigt den Effekt und wie er sich abstellen lässt.

Aufbau

Seite Kategorie
Seminarraum S1, Seminarraum S2, Werkstatt W1 Category:Raum
Foto Seminarraum S1, Foto Werkstatt W1 Category:Raum (Foto)

Category:Raum (Foto) ist eine Unterkategorie von Category:Raum. Die beiden Fotoseiten liegen ausschließlich in der Unterkategorie.

Standardverhalten

{{#ask: [[Category:Raum]] |format=ul }}

Gefunden werden auch die beiden Fotoseiten, obwohl sie nicht in Category:Raum stehen. Der Grund ist die Einstellung $smwgQSubcategoryDepth, die standardmäßig auf 10 steht und Unterkategorien bis zu dieser Tiefe mit auflöst.

Mit Tiefenbegrenzung

{{#ask: [[Category:Raum|+depth=0]] |format=ul }}

+depth=0 löst nur die genannte Kategorie auf. Die Unterkategorie kann eingehängt bleiben, die Abfrage sieht sie einfach nicht mehr.

Was nicht funktioniert

Naheliegend, aber falsch ist der Versuch, die Unterkategorie auszuschließen:

{{#ask: [[Category:Raum]] [[Category:!Raum (Foto)]] |format=ul }}

Das Ausrufezeichen ist bei Kategorien kein Ausschluss der Zugehörigkeit. Das Ergebnis ist hier sogar genau die Menge, die ausgeschlossen werden sollte, nämlich die beiden Fotoseiten. Wer sich darauf verlässt, bekommt also stillschweigend das Gegenteil des Gewünschten. Für diesen Zweck gibt es nur +depth.

Hinweise

  • +depth gibt es seit Semantic MediaWiki 3.0.
  • Es wirkt genauso auf Attributhierarchien: [[Attribut::+|+depth=0]].
  • Wiki-weit ließe sich $smwgQSubcategoryDepth = 0 setzen. Pro Abfrage ist besser, sonst fehlt die Auflösung überall dort, wo sie erwünscht ist.
  • Die Unterkategorie deswegen auszuhängen, ist nicht nötig und kostet die Struktur.