Gespräch:In Sachen Semantic MediaWiki Abfragen
Über diese Seite Gespräch
-
SMW Abfragen Syntax
ChatGPT Sophos GPT-5 Thinking
12. September 2025 n. Chr. erst.
10:14 Uhr Ausgabe 01
Ausgabe 01
unüberarbeitet ungeprüft
2025091201 In Sachen Semantic MediaWiki Abfragen
Hallo Sophos,
hilf mir bitte in Sachen Semantic MediaWiki Abfragen.
Ich habe in jeder Wikiseite einer Persönlichkeit das Attribut hat Namezuordnung::{{PAGENAME} hinzugefügt.
Nun will ich mir auf einer Seite alle Seiten mit dem Attribut "hat Namezuordnung" in einer Tabellen als Liste anzeigen lassen?
1. Was ist die Syntax der Abfrage dazu wenn ich nur nach dem Attribut frage? 2. wie lautet 1. mit einer Kategorie, vergleichsweise "Kategorie:Persönlichkeit Auswahl"?
Hallo Nikolaos 👋
| Sie möchten möglicherweise eine Tabelle mit Seitenlinks und -namen anzeigen. Die Abfragen sollten mit "format=table" und ggf. "headers=plain" erstellt werden. Für eine Liste könnte "format=table" sinnvoll sein, ergänzt durch "headers=plain" und "class=wikitable sortable". Der Fall für einen Text- oder Seitentyp sollte ebenfalls berücksichtigt werden, und zwei Abfragesyntaxen könnten dabei helfen: einmal über Attributvorhandensein und einmal mit Kategorienfilter.
Ich entscheide mich für "Sept." für den Monat September, um harmonisch mit "Nov." übereinzustimmen. Nutze also "12. Sept. 2025, 10:14", was konsistent und prägnant ist. Die Property-Namensschreibung ist wichtig, da sie in SMW case-sensitiv ist, also sollte "Hat Namezuordnung" mit einem großen "N" korrekt verwendet werden. Die Property-Namen sind in SMW case-sensitive, aber mit der Normalisierung des ersten Buchstabens. Der Nutzer wollte "hat Namezuordnung" verwenden, was völlig in Ordnung ist. Wir können dies verwenden und zusätzlich darauf hinweisen, dass es sich um eine case-insensitive Schreibweise handelt. Wenn sie nach einem Attribut fragen möchten, verwenden wir "::+" und könnten auch eine Kombination mit einer Kategorie oder spezifischen Spalten wie "mainlabel=Seite" empfehlen. Ich schlage vor, "class=wikitable sortable" zu verwenden, um die Tabelle benutzerfreundlich zu gestalten. Das "distinct"-Attribut könnte verwendet werden, um Duplikate zu vermeiden, aber um Verwirrung zu vermeiden, lasse ich es lieber weg. Stattdessen verwende ich "limit=500" für mehr Ergebnisse und "searchlabel=… weitere". Ich zeige zwei Syntaxbeispiele: eins nach Attribut und ein anderes mit Kategorienkombination. Die Syntax stellt sicher, dass wir Duplikate filtern und eine Tabelle anzeigen. Es ist effektiv, klar und entspricht den Erwartungen des Nutzers. Ich werde auch eine kurze Erklärung hinzufügen, aber nur, wenn nötig, und nur eine Zeile. Wir bleiben bei der Tabellenform. Fertig |
kurz & präzise:
Nur nach dem Attribut (alle Seiten, wo es gesetzt ist):
{{#ask: [[hat Namezuordnung::+]] | ?hat Namezuordnung = Name | mainlabel = Seite | format = table | headers = plain | class = wikitable sortable | limit = 500 | searchlabel = … weitere Ergebnisse }}
Hinweis: ::+ bedeutet „Eigenschaft ist vorhanden (beliebiger Wert)“.
Zusätzlich auf eine Kategorie einschränken (z. B. „Kategorie:Persönlichkeit Auswahl“):
{{#ask:
[[Kategorie:Persönlichkeit Auswahl]]
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| headers = plain
| class = wikitable sortable
| limit = 500
| searchlabel = … weitere Ergebnisse
}}
Wenn Du eine andere Sortierung/Begrenzung brauchst, kann ich Dir die Parameter direkt anpassen.
Du:
Danke. Dann liegt es nicht an meiner Syntax der Abfrage, warum ich eine leere Liste bekomme.
Ich habe das "Attribut:hat Namezuordnung" (Property) überprüft und es führt keine Einträge auf.
"php maintenance/run.php refreshLinks" und "php maintenance/run.php runJobs" sind ausgeführt und andere Attribute haben einträge und führen diese in Listen auf.
Was kann noch die Ursache dafür sein, daß neu angelegte Attribute nun nicht funktionieren?
Was kann ich
ChatGPT:
| Wir müssen Nikolaos präzise Fehlerbehebungsschritte anbieten. Es scheint, dass es ein Problem mit einer nicht deklarierten Eigenschaft im SMW 5.x System gibt. Stelle sicher, dass die „declare property“ korrekt verwendet wird und dass die Eigenschaft als „Page“ oder „Text“ definiert wurde. Achte auch darauf, dass die Property-Seite existiert.
Um eine Eigenschaft auf der Property-Seite anzuzeigen, muss „Property:hat Namezuordnung“ vorhanden sein. In SMW wird die Eigenschaft automatisch mit dem Typ „Page“ oder „Text“ erstellt, wenn dieser noch nicht festgelegt ist. Der Standardwert ist "Page", wenn die Annotation einen Link enthält, und "Text", wenn es sich um normalen Text handelt. Wenn du {{PAGENAME}} benutzt, handelt es sich um einen Textwert ohne Verlinkung. In SMW kannst du den Titel einer Seite angeben, indem du [[Property::PageTitle]] verwendest. Der Wert wird als Seitenobjekt gespeichert, selbst wenn der Markup-Link nicht vorhanden ist. Wenn du PAGENAME nutzt, entsteht normalerweise der richtige Bezug zur aktuellen Seite. Achte aber darauf, den Namespace korrekt anzugeben. Es könnte ein Problem mit dem Namespace geben, da der Wert Es gibt viele mögliche Ursachen für das Problem mit der fehlenden Anzeige von Einträgen für das Attribut „hat Namezuordnung“. Mögliche Gründe umfassen falsche Namensraum-Zuweisungen, fehlerhafte APIs, ungültige Seitenzeichen (wie „?„) oder spezielle Einstellungen wie der Semantic ACL, der den Zugriff verhindern kann. Um fehlende Einträge zu diagnostizieren, sollte überprüft werden:
Fertig |
Gern. Wenn andere Eigenschaften funktionieren, ist Store/Jobs wahrscheinlich ok; der Fehler liegt meist in (a) Typ/Name der Eigenschaft, (b) wo/was genau annotiert wird, oder (c) Rebuild-Lücken. Hier ist ein kompakter Diagnose-Plan mit konkreten Fixes:
Schnelltest (2 Minuten)
- Ein Beispiel prüfen: Auf einer betroffenen Seite
Spezial:Browse/Seitentitelöffnen. – Fall A: „hat Namezuordnung“ fehlt ⇒ Annotation greift nicht → weiter zu Punkt 2–4. – Fall B: Eigenschaft ist sichtbar ⇒ Daten sind gespeichert, aber Abfrage/ACL/Caches filtern → Punkt 5–7. - Exakter Name ohne „unsichtbare“ Leerzeichen Kopiere den Eigenschaftsnamen aus
Spezial:Properties(Liste aller Eigenschaften) und verwende genau diese Schreibweise in Annotation und Query. (Häufige Ursache: geschütztes Leerzeichen U+00A0 oder dünnes Leerzeichen.) Kontrolle: Erscheint ggf. ein zweites fast gleich aussehendes „hat Namezuordnung“ inSpezial:Properties? Dann hast du zwei verschiedene Eigenschaften erwischt. - Datentyp passend setzen Auf
Attribut:hat Namezuordnungsicherstellen:(Alternativ ginge<nowiki>[[Hat Datentyp::Seite]]</nowiki>
Text, aber für Seitentitel istSeitesauberer.) Hinweis: Falsche Typen (URL, Zahl, etc.) führen dazu, dass Werte verworfen werden → leere Listen. - Wert inkl. Namensraum speichern Wenn die Personen nicht im Hauptnamensraum liegen, verwende:(Mit
<nowiki>[[hat Namezuordnung::{{FULLPAGENAME}}]]</nowiki>
{{PAGENAME}}landet sonst ggf. ein Seitentitel ohne Namensraum im Store.) Optional mit Anzeigeetikett:<nowiki>[[hat Namezuordnung::{{FULLPAGENAME}}|{{PAGENAME}}]]</nowiki>
- Template-Position / noinclude prüfen Steht die Annotation wirklich im transkludierten Teil? – Muss innerhalb von
liegen (falls du das verwendest) und nicht in. – Teste minimal direkt im Fließtext einer Seite:[[hat Namezuordnung::{{FULLPAGENAME}}]]. Wenn daserscheint, liegt es am Template. - Semantic ACL / Rechtefilter Falls SemanticACL aktiv ist: Prüfe, ob die Eigenschaft oder die Seitenkategorie per ACL vom Querying ausgeschlossen wird. – Gegenprobe:
Spezial:Browsezeigt die Eigenschaft (Punkt 1 „Fall B“), aber#askgibt 0 ⇒ sehr wahrscheinlichACL/Filter. - Gezielt neu aufbauen Nach Korrektur von (2–6) selektiv neu indizieren (schont Zeit):oder für einzelne Seiten:
php extensions/SemanticMediaWiki/maintenance/rebuildData.php \ --category "Persönlichkeit Auswahl" -f -d 100 -v
Danach einmalphp extensions/SemanticMediaWiki/maintenance/rebuildData.php \ --page "Seitentitel" -f -v
?action=purgeauf der Abfrageseite.
Minimaler Kontrollversuch
- Lege eine Testseite an (im gleichen Namensraum wie deine Persönlichkeiten), Inhalt:
- Prüfe
Spezial:Browse/Testseite→ Wert muss erscheinen. - Test-Abfrage: Erscheint 1 Treffer ⇒ Query ok, Problem lag an Typ/Name/Template/ACL der eigentlichen Seiten.
Wenn du magst, poste mir:
- einen wörtlichen Auszug der Annotation aus dem Template,
- einen Screenshot/Copy von
Attribut:hat Namezuordnung(zeigt „Hat Datentyp“), - das Ergebnis von
Spezial:Properties(zeigt es evtl. zwei fast identische Eigenschaften?).
Dann engen wir es auf 1–2 konkrete Ursachen ein und ich gebe dir die exakten Zeilen, die du tauschen musst.
Du:
Danke für die Hinweise. Ich habe nun den Fehler soweit eingekreist, daß ein in einer Wikiseite neu vergebenes Attribut schon in der Wikiseite nicht erkannt wird, da "Attribute anzeigen" nicht unter Werkzeuge aufgeführt ist und ich somit auch kein "Semantisches Browsen" haben kann.
ChatGPT:
| Hm, es scheint, dass die "Browsen-Eigenschaften"-Funktion auf Seiten mit bestimmten Namensräumen und Berechtigungen wie "smw-browse" erscheint. Wenn sie auf manchen Seiten fehlt, könnte es mit einer fehlenden Rechtseinstellung zu tun haben, oder weil das "Factbox" nicht angezeigt wird. Vielleicht gibt es noch andere Einstellungen, die auf diesen Seiten überprüft werden sollten.
Es könnte sein, dass der Fehler durch einen neuen Namensraum verursacht wird, der nicht für semantische Links vorgesehen ist. Wenn dieser Namensraum nicht in den Einstellungen für SMW aktiviert ist, wird das "Attribute anzeigen" nicht auftauchen. Auch die Anzeige des "Browse properties"-Links hängt davon ab, ob es spezifische Property-Annotationen gibt. Da der Nutzer benutzerdefinierte Namensräume hat, sieht es so aus, als ob der betroffene Namensraum nicht für semantische Annotationen aktiviert ist. Ich sollte dem Nutzer raten, die Einstellung Da der Hauptursprung des Problems die fehlende Aktivierung des Namensraums ist, werde ich mich darauf konzentrieren, diese Einstellung zu überprüfen: Searching for Semantic MediaWiki configuration details Die Einstellung Die Reihenfolge der Einstellungen ist entscheidend: Zuerst müssen benutzerdefinierte Namensräume definiert werden, dann folgt das Laden der Semantik-Erweiterung und das Aktivieren von Semantik für die spezifische Domain. Ich erkläre dem Nutzer, dass die richtige Reihenfolge sicherstellt, dass beide Funktionen korrekt zusammenarbeiten. Die Ursache für den fehlenden Link könnte darin liegen, dass Wenn der benutzerdefinierte Namensraum "Persönlichkeit" nicht aktiviert ist, liegt dies daran, dass Semantik in diesem Namensraum nicht eingeschaltet wurde. Ich schlage vor, schrittweise diese Anpassungen vorzunehmen, indem die entsprechenden Konstanten und Namensräume korrekt definiert und in den Einstellungen aktiviert werden, wie im Beispielcode gezeigt. Fertig |
Klingt so, als ob die Seite in einem Namensraum ohne SMW-Freigabe liegt – dann werden Annotationen ignoriert; folglich erscheinen weder „Attribute anzeigen“ noch „Semantisches Browsen“. Zwei typische Ursachen:
1) Namensraum nicht für SMW aktiviert
In LocalSettings.php muss der Namensraum in $smwgNamespacesWithSemanticLinks auf true stehen nachdem der Namensraum definiert wurde. Beispiel (bitte IDs/Bezeichner an deine anpassen):
# 1) Eigene Namensräume definieren
define( 'NS_PERSOENLICHKEIT', 3000 );
define( 'NS_PERSOENLICHKEIT_TALK', 3001 );
$wgExtraNamespaces[NS_PERSOENLICHKEIT] = 'Persönlichkeit';
$wgExtraNamespaces[NS_PERSOENLICHKEIT_TALK] = 'Persönlichkeit_Diskussion';
# 2) SMW laden + aktivieren
wfLoadExtension( 'SemanticMediaWiki' );
enableSemantics( 'example.org' ); // deine Domain/ID
# 3) Semantik in den NS einschalten
$smwgNamespacesWithSemanticLinks[NS_MAIN] = true;
$smwgNamespacesWithSemanticLinks[NS_PERSOENLICHKEIT] = true; // << wichtig
$smwgNamespacesWithSemanticLinks[NS_CATEGORY] = true; // falls gewünscht
Dokumentation: $smwgNamespacesWithSemanticLinks (welche NS semantisch ausgewertet werden) und Special:Browse. Semantic MediaWiki+1
Wichtig: Die Zeile mit
$smwgNamespacesWithSemanticLinks[...]muss nach der Definition der Namensraum-Konstanten stehen (sonst greift sie nicht). Hinweise dazu finden sich auch in den SMW-Diskussionen. Semantic MediaWiki+1
2) Toolbox-Link zu „Semantisches Browsen“ deaktiviert
Falls site-weit der Link ausgeblendet wurde, kannst du ihn wieder einschalten:$smwgToolboxBrowseLink = true;
(oder rufe testweise direkt Spezial:Browse/Voller_Seitentitel auf). Semantic MediaWiki
3) (optional) Factbox sichtbar machen
Nur zur Kontrolle, dass Werte wirklich gespeichert werden: $smwgShowFactbox = SMW_FACTBOX_NONEMPTY;
(Bei Bedarf auf der Seite __SHOWFACTBOX__ setzen.) Semantic MediaWiki+1
Nach Konfig-Änderung
- Betroffene Seiten neu indizieren (gezielt reicht):
php extensions/SemanticMediaWiki/maintenance/rebuildData.php --page "Voller_Seitentitel" -f -v # oder per Kategorie: # php .../rebuildData.php --category "Persönlichkeit Auswahl" -f -v
- Die Abfrageseite einmal mit
?action=purgeleeren.
Quick-Check
- Direkt aufrufen:
Spezial:Browse/{{FULLPAGENAME}}. - Wenn dort nichts steht: Prüfe, ob die Seite im neu aktivierten Namensraum liegt und ob die Annotation auf der Seite (nicht in
) steht. - Typ der Property „Attribut:hat Namezuordnung“ sollte sinnvollerweise
[[Hat Datentyp::Seite]]sein.
Wenn du mir die exakten Namensraum-Konstanten/IDs deiner „Persönlichkeit“ (und ggf. „Persönlichkeit Auswahl“) nennst, schreibe ich dir die passenden LocalSettings.php-Zeilen präzise aus.
Du:
"$smwgNamespacesWithSemanticLinks" war mein Fehler. Attribute habe ich bislang nur in bestimmten Namensräumen verwendet und die Änderung war, daß ich nun im NS-MAIN und NS-CATEGORY Attribute vergabe und nicht zuvor "$smwgNamespacesWithSemanticLinks" in LocalSetting.php für diese Namensräume eingetragen hatte. Danke für den Hint.
ChatGPT:
Ich freue mich, dass es funktioniert hat! Um künftige Probleme zu vermeiden, würde ich vorschlagen, NS_MAIN und NS_CATEGORY zu aktivieren und den Cache neu zu erstellen. Falls nötig, können auch smwgToolboxBrowseLink und das Faktenfeld aktiviert werden. Denke daran, dass Kategorien oft als Seiten genutzt werden, was die Aktivierung von Semantik dort unproblematisch macht.
Ich freue mich, dass das Problem erkannt wurde! Um die Semantik zu aktivieren und Eigenschaften in Kategorien zu speichern, füge einfach Folgendes in deine LocalSettings.php ein:$smwgNamespacesWithSemanticLinks[NS_MAIN] = true;
$smwgNamespacesWithSemanticLinks[NS_CATEGORY] = true;
Damit sollte alles passen! Fertig |
Super — dann hast du die Ursache gefunden. 👍
Für die Zukunft kurz die Minimal-Konfig (an die richtige Stelle setzen: nach enableSemantics()):
# SMW in Haupt- und Kategorien-Namensraum aktivieren
$smwgNamespacesWithSemanticLinks[NS_MAIN] = true;
$smwgNamespacesWithSemanticLinks[NS_CATEGORY] = true;
Danach für die betroffenen Seiten die Daten neu aufbauen (gezielt reicht):
php extensions/SemanticMediaWiki/maintenance/rebuildData.php --page "Seitentitel" -f -v
# oder per Kategorie:
php extensions/SemanticMediaWiki/maintenance/rebuildData.php --category "Persönlichkeit Auswahl" -f -v
Und die Abfrageseite einmal mit ?action=purge laden.
Schnelltest deiner Property:
{{#ask:
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
}}
Wenn noch etwas hakt (Template, FULLPAGENAME vs. PAGENAME, etc.), sag kurz Bescheid, dann prüfe ich die konkreten Zeilen.
Du:
Danke soweit. Zu "2. Zusätzlich auf eine Kategorie einschränken" Ich habe Namen den Kategorien "Kategorie:Eigenname Auswahl" und "Kategorie:Würdenträger Auswahl" zugeordnet. Ich will nun eine Namensliste erstellen, die eine Liste mittels mehrerer Kategorien zusammenstellt. Wie muß die Syntax lauten?
ChatGPT:
Die Anfrage erfordert, in SMW Kategorien mit "OR" und "AND" zu kombinieren. In der Standard-Syntax verwendet man . "OR" kann durch [[Category:Foo]] || [[Category:Bar]] oder [[Category::Foo || Bar]]<nowiki> dargestellt werden. Aber wegen der Kategorie als Seitenproperty könnte es unterschiedlich sein, je nach Kontext.
In SMW kann Disjunktion für Eigenschaften mit <code>||</code> erfolgen, wie bei <code><nowiki>[[Property::A||B||C]]. Für Kategorien nutzt man den Ausdruck [[Category:Foo]] und stellt Disjunktion mit OR in der Abfrage her: [[Category:Foo]] OR [[Category:Bar]]. |
ist in Kategorien nicht relevant, sondern nur für Eigenschaftswerte wie [[Has color::red||blue]].
Ich erinnere mich, dass SMW Kategorien möglicherweise als implizite Eigenschaften behandelt, wie bei <code>[[Category::CategoryName]]</code>. Um Kategorien mit "OR" zu kombinieren, sollte der Ausdruck Die Nutzeranfrage dreht sich um die Erstellung einer Namenliste mit mehreren Kategorien. Es gibt zwei Wege: Für eine Vereinigung von Kategorien (A ODER B) verwenden wir Für die Vereinigung von Kategorien in SMW kann man Um in SMW Kategorien auszuschließen, kann man Um die Seiten nach dem "Name"-Eigenschaft aufsteigend zu sortieren, verwenden wir Fertig |
Gern – hier sind die gebräuchlichen Varianten:
1) Vereinigung (A oder B)
{{#ask:
[[Kategorie:Eigenname Auswahl||Würdenträger Auswahl]]
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
| limit = 500
}}
Hinweis: Das || ist die Disjunktion (OR) für Kategorien innerhalb einer Bedingung; alternativ ginge auch [[Kategorie:Eigenname Auswahl]] OR [[Kategorie:Würdenträger Auswahl]], aber mit || gilt die restliche Bedingung für beide Kategorien. Semantic MediaWiki+1
2) Schnittmenge (A und B)
{{#ask:
[[Kategorie:Eigenname Auswahl]]
[[Kategorie:Würdenträger Auswahl]]
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
| limit = 500
}}
3) Mehr als zwei Kategorien (OR-Kette)
{{#ask:
[[Kategorie:Eigenname Auswahl||Würdenträger Auswahl||Noch eine Kategorie]]
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
}}
Optional sortieren:
| sort = hat Namezuordnung
| order = ascending
Kurzquelle zur OR-Syntax bei Kategorien: OR bzw. || in SMW-Abfragen. Semantic MediaWiki
Du:
Ob 1. 2. oder 3. – es wird immer nur die letzte Kategorie in der Abfolge gelistet, also zuvor aufgeführte Kategorien, werden nicht einbezogen. Überprüfe bitte nochmals die Syntax, gemäß der Vorgaben von Semantic MediaWiki.
ChatGPT:
Die Benutzeranfrage betrifft die Verwendung des OR in SMW, um mehrere Kategorien zu kombinieren. In SMW wird für Kategorien OR in Großbuchstaben verwendet, nicht ||, was normalerweise für Eigenschaftsbedingungen gilt. Die Bedingungen für Kategorien wie [[Category:Foo]] OR [[Category:Bar]] oder der Einsatz von [[Category:Foo|+]]sollten korrektes Verhalten ermöglichen.
Für Kategorien in SMW ist es wichtig, den vollständigen Namespace zu verwenden, wie bei Die korrekte Verwendung für die Kombination von Kategorien in SMW ist Für eine Schnittmenge müssen beide Kategorien als separate Fertig |
Guter Fund – das Verhalten kommt von der OR-Syntax:
|| funktioniert nur innerhalb von Eigenschaftswerten (nach ::). Für Kategorien brauchst du OR (in Worten) und am besten Klammern, wenn weitere Bedingungen folgen.
Vereinigung (A oder B)
{{#ask:
( [[Kategorie:Eigenname Auswahl]] OR [[Kategorie:Würdenträger Auswahl]] )
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
}}
Schnittmenge (A und B)
{{#ask:
[[Kategorie:Eigenname Auswahl]]
[[Kategorie:Würdenträger Auswahl]]
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
}}
Mehr als zwei Kategorien (OR-Kette)
{{#ask:
( [[Kategorie:Eigenname Auswahl]] OR [[Kategorie:Würdenträger Auswahl]] OR [[Kategorie:Noch eine]] )
[[hat Namezuordnung::+]]
| ?hat Namezuordnung = Name
| mainlabel = Seite
| format = table
| class = wikitable sortable
}}
Wichtig:
- Jede Kategorie mit vollem Präfix
[[Kategorie:…]]. - Bei Kombination mit weiteren Bedingungen (z. B.
[[hat Namezuordnung::+]]) die Klammern um den OR-Block setzen, sonst bezieht sich die letzte Bedingung nur auf den letzten Term → genau dein Effekt „nur die letzte Kategorie“.