Template format/de | |
---|---|
Gibt die Ergebnisse in einer zur Formatierung und Darstellung genutzten Vorlage aus | |
Weitere Informationen | |
Software: | Semantic MediaWiki |
Verfügbar seit: | 0.7 |
Verfügbar bis: | aktuell unterstützt |
Voraussetzungen: | keine |
Name: | template |
Standardmäßig aktiviert:Gibt an, ob das Ergebnisformat standardmäßig mit Installation der betreffenden Softwareerweiterung aktiviert ist. | ja |
Autoren: | Markus Krötzsch |
Kategorie(n): | Sonstige |
Inhaltsverzeichnis | |
Das Ergebnisformat template wird dazu eingesetzt Abfrageergebnisse (eingebettete Abfragen) in einer zur Formatierung und Darstellung genutzten Vorlage auszugeben.
Parameter[edit]
Die folgende Tabelle gibt einen Überblick über die verfügbaren Parameter, beschreibt sie kurz und gibt deren Standardwerte mitsamt dem zugehörigen Eingabetyp an.
Parameter | Aliasse | Typ | Standard | Beschreibung |
---|---|---|---|---|
propsep | - | Text | , | Legt fest, welches Trennzeichen zwischen den Attributen der Ergebnisse genutzt werden soll |
valuesep | - | Text | , | Legt fest, welches Trennzeichen zwischen den Attributwerten der Ergebnisse genutzt werden soll |
template | - | Text | leer | Legt fest, welche Vorlage zum Anzeigen der Abfrageergebnisse verwendet werden soll |
named args | namedargs | ja/nein | no | Legt fest, ob Bezeichnungen für die Parameter an die Vorlage bei der Ausgabe der Abfrageergebnisse weitergegeben werden sollen |
userparam | - | Text | leer | Legt fest, welcher Wert jedem Vorlagenaufruf übergeben wird, sofern eine Vorlage genutzt wird |
class | - | Text | leer | Legt fest, welche zusätzliche CSS-Klasse genutzt werden soll |
introtemplate | - | Text | leer | Legt fest, welche Vorlage vor der Ausgabe von Abfrageergebnissen eingefügt werden soll |
outrotemplate | - | Text | leer | Legt fest, welche Vorlage nach der Ausgabe von Abfrageergebnissen eingefügt werden soll |
sep | - | Text | , | Legt fest, welches Trennzeichen bei der Ausgabe der Abfrageergebnisse genutzt werden soll |
Vorlagen zu benutzerdefinierten Formatierung[edit]
Ein paar Ergebnisformate unterstützen die Verwendung von Vorlagen, mit denen die Ausgabe der Abfrageergebnisse bei eingebetteten Abfragen gesteuert werden kann. Dies sind die Formate template, list, ol und ul. Wenn eine Vorlage genutzt wird, werden alle Ergebniszeilen unter Verwendung derselben formatiert. Der Name der Vorlage wird als Parameter ohne die vorangestellte Namensraumbezeichnung „Vorlage:“ angegeben. Die entsprechenden Abfragen werden stets nach folgendem Schema erstellt:
{{#ask: … | format=template/list/ol/ul | template=„Name der Vorlage“}}
Die einzelnen Abfrageergebnisse werden einzeln nacheinander von der in der Abfrage angegebene Vorlage verwendet, in der diese als nummerierte Vorlagenparameter enthalten sind. Sofern bspw. eine Vorlage drei mit einer Tabelle formatierte Zeilen enthält, besteht diese folglich aus drei Vorlagenparametern. Die Parameter werden, wie sonst bei MediaWiki üblich, {{{1}}}, {{{2}}} usw. geschrieben. Jeder Parameter bezieht sich dabei auf ein „Feld“ oder eine „Spalte“ in der jede ausgewählte Seite als Ergebnis angezeigt würde. Gewöhnlich enthält das erste Feld einer Abfrage den Seitentitel (siehe hierzu auch diese Stelle), so daß der Parameter {{{1}}} für den Seitentitel steht, während {{{2}}}, {{{3}}}, … für die Attributwerte der zusätzlich abgefragten Attribute stehen. Unten auf dieser Seite werden hierzu etliche Beispiele angeführt.
Das Ergebnisformat template ermöglicht eine größere Flexibilität bei der Darstellung von Abfrageergebnissen. Zu nennen wären:
- Änderungen der Ausgabereihenfolge der Ergebnisse, bzw. das Auslassen doppelter Ergebnisse
- Anzeige von Bildern in Abhängigkeit von den Ergebnissen
- Erzeugung von Links zu Attributwerten
- Nutzung von CCS, um bspw. Schriftgröße, Ausrichtung, Hintergrundfarbe, usw. individuell je Tabellenspalte zu formatieren
Für den Fall, daß eine Vorlage zur Anpassung von Links genutzt wird, sollte der Parameter link=none gesetzt werden, um SMWs automatische Verlinkung zu Artikeln zu verhindern. Der gleiche Effekt kann ebenso erzielt werden, indem man das Ausgabeformat „formatlos“ wählt (siehe hierzu diese Stelle). Nun kann man [[ ]] um alles setzen, zu dem ein Link erstellt werden soll.
Zum besseren Verständnis, hinsichtlich der Erstellung einer Vorlage zur Formatierung einer Abfrage, kann zunächst das Beispiel einer Abfrage mit dem Ergebnisformat table dienen. Sofern hierbei eine Abfrage nur Ergebnisse einer Seite ausgeben soll, wozu üblicherweise die Parserfunktion #show verwendet wird, wird der Seitenname der Seite ausgeblendet, die das Abfrageergebnis enthält. Daher verweist die Variable {{{1}}} auf die erste Ausgabeanweisung und nicht auf den Seitennamen. Die Nutzung der Ausgabeanweisung ? oder die Angabe eines Titels für die Hauptergebnisspalte mainlabel ermöglicht die Änderung dieses Verhaltens.
Die folgenden Beispiele verwenden allesamt die Vorlage Query output demo (de) die folgenden Wikitext enthält:
{{{2}}} Menschen tummeln sich auf {{{3}}} in {{{1}}}.
Die untenstehenden Abfragen veranschaulichen die Auswirkungen bei der Nutzung dieser Vorlage:
{{#ask: [[Kategorie:Stadt]] [[Fläche::+]] [[Bevölkerung::+]] | ?Bevölkerung=Einwohner | ?Fläche#km²=Größe in km² | format=template | template=Query output demo (de) | limit=3 }}
Ergebnis:
783,364 Menschen tummeln sich auf 219.00 km²84.56 sqmi <br /> in Amsterdam.
3,520,061 Menschen tummeln sich auf 891.85 km²344.34 sqmi <br /> in Berlin.
1,080,394 Menschen tummeln sich auf 405.02 km²156.38 sqmi <br /> in Cologne.
Das obige Beispiel zeigt wie die Vorlage alle in der Abfrage angegebenen Titel, wie z. B. „Größe in km²“, ignoriert. Dennoch zeigt die Vorlage die bei der Ausgabeformatierung angegebene Einheit ?Fläche#km²=Größe in km² an. Ebenso werden alle weiteren Ausgabeformatierungen angewendet. Siehe hierzu auch die Hilfeseite Informationsanzeige.
Nun folgt eine ähnliche, nach der Bevölkerungszahl sortierte Abfrage, die das Ergebnisformat ol nutzt, um eine nummerierte Liste zu erzeugen:
{{#ask: [[Kategorie:Stadt]] [[Fläche::+]] [[Bevölkerung::+]] | ?Bevölkerung | ?Fläche#km² | format=ol | template=Query output demo (de) | limit=3 | sort=Bevölkerung | order=desc }}
Ergebnis:
- 7,825,200 Menschen tummeln sich auf 1,706.80 km²659.00 sqmi <br /> in London.
- 4,575,532 Menschen tummeln sich auf 2,058.00 km²794.59 sqmi <br /> in Sydney.
- 3,520,061 Menschen tummeln sich auf 891.85 km²344.34 sqmi <br /> in Berlin.
Sofern für die Abfrage eine einzelne Seite direkt angegeben wird, enthält das Abfrageergebnis nicht diese Seite. Um nun die selbe Vorlage dennoch nutzen zu können, muss in der Abfrage mit Hilfe von |? gesondert angegeben werden, dass der Seitenname angezeigt werden soll:
{{#ask: [[Berlin]] | ? | ?Bevölkerung | ?Fläche#km² | format=template | template=Query output demo (de) }}
Ergebnis:
3,520,061 Menschen tummeln sich auf 891.85 km²344.34 sqmi <br /> in Berlin.
Gleiches kann mit der Parserfunktion #show bewerkstelligt werden, obschon dies nicht ihr überlicherweise vorgesehener Verwendungszweck ist:
{{#show: Berlin | ? | ?Bevölkerung | ?Fläche#km² | format=template | template=Query output demo (de) }}
Ergebnis:
3,520,061 Menschen tummeln sich auf 891.85 km²344.34 sqmi <br /> in Berlin.
Vorlagen können auch andere Parserfunktionen, wie bspw. Parserfunktionen mit denen Bedingungen formuliert werden, oder gar weitere Abfragen enthalten. Beispiele für derart komplexe Abfrageformatierungen sind auf den folgenden externen Webseiten zu finden:
- Anstehende Veranstaltungen auf der Hauptseite von semanticweb.org: Der Abschnitt zu den Veranstaltungen auf dieser Seite zeigt lediglich bestimmte herausgehobene Veranstaltungen an. Jede dieser Veranstaltungen wird mit einer Vorlage formatiert, die eine weitere eingebettete Abfrage enthält, um ihr untergeordnete Veranstaltungen, wie bspw. begleitende Workshops, Tutorien usw. zu ermitteln.
- Publikationen auf korrekt.org: Alle Listen auf dieser Webseite werden durch Abfragen erstellt, die mit Vorlagen versehen sind. Bedingungen wie #if and #ifeq werden hier eingesetzt, um die Ergebnisformatierung abhängig von der Art der Publikation sowie den verfügbaren Daten (Hauptpublikationen werden bspw. in Fettschrift angezeigt) durchzuführen.
Verwendung des Parameters userparam[edit]
Es ist mit einer Abfrage möglich, der Vorlage den Parameter userparam als einzelnen benutzerdefinierten Parameter hinzuzufügen. Dies wird mit |userparam=Wert des Parameters. In der Vorlage wird der Parameterwert mit der dort angegebenen Variable {{{userparam}}} ausgegeben.
Dieser Parameter erhöht die Verwendbarkeit einzelner Vorlagen und macht sie vielseitiger einsetzbar. Der Parameter ermöglicht es, eine einzelne Vorlage im Zusammenhang mit mehreren unterschiedlichen Abfragen zu verwenden und dennoch in allen Fällen eine sinnvolle Ergebnisausgabe zu erhalten.
Beispielsweise könnte man so die umgangssprachliche Standardformulierung „tummeln sich“ durch „leben“ ersetzen, usw.
{{#ask: [[Kategorie:Stadt]] [[Fläche::+]] [[Bevölkerung::+]] | ?Bevölkerung | ?Fläche#km² | format=ol | template=Query output demo (de) | limit=3 | sort=Bevölkerung | userparam=leben | order=desc }}
Ergebnis:
- 7,825,200 Menschen tummeln sich auf 1,706.80 km²659.00 sqmi <br /> in London.
- 4,575,532 Menschen tummeln sich auf 2,058.00 km²794.59 sqmi <br /> in Sydney.
- 3,520,061 Menschen tummeln sich auf 891.85 km²344.34 sqmi <br /> in Berlin.
Anzeige des Links zu weiteren Ergebnissen[edit]
Der Link zu weiteren Ergebnissen ([weitere Ergebnisse …]), wie er bei anderen Ergebnisformaten möglich ist, funktioniert nur beim Ergebnisformat template selbst. Sofern Ergebnisse in tabellenform ausgegeben werden sollen, werden die Parameter introtemplate und outrotemplate verwendet, um dies umsetzen zu können. Siehe diese Seite (en) für weitere Informationen hierzu.