Help:Ergebnisformat template

From semantic-mediawiki.org
Jump to: navigation, search
Ergebnisformat template
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

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 Typ Standard Beschreibung
sep Text , Das Trennzeichen für die Ergebniswerte
template Text leer Der Name einer Vorlage, die zum Anzeigen der Abfrageergebnisse verwendet werden soll
named args ja/nein no Die an die Vorlage zu übergebenden Argumente
userparam Text leer Der Wert, der bei jedem Vorlagenaufruf übergeben wird, sofern eine Vorlage genutzt wird
introtemplate Text leer Der Name der vor etwaigen Abfrageergebnissen anzuzeigenden Vorlage
outrotemplate Text leer Der Name der nach etwaigen Abfrageergebnissen anzuzeigenden Vorlage
import-annotation ja/nein no <smw-paramdesc-import-annotation>

Vorlagen zu benutzerdefinierten Formatierung

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 km²
84.556 sqmi
in Amsterdam. 43,765 Menschen tummeln sich auf 60 km²
23.166 sqmi
in Belleville. 3,520,061 Menschen tummeln sich auf 891.85 km²
344.343 sqmi
in Berlin.

... further results

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:

  1. 7,825,200 Menschen tummeln sich auf 1,706.8 km²
    658.995 sqmi
    in London.
  2. 4,575,532 Menschen tummeln sich auf 2,058 km²
    794.594 sqmi
    in Sydney.
  3. 3,520,061 Menschen tummeln sich auf 891.85 km²
    344.343 sqmi
    in Berlin.
  4. ... further results


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:

Berlin Menschen tummeln sich auf 3,520,061 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.343 sqmi
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

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:

  1. 7,825,200 Menschen leben auf 1,706.8 km²
    658.995 sqmi
    in London.
  2. 4,575,532 Menschen leben auf 2,058 km²
    794.594 sqmi
    in Sydney.
  3. 3,520,061 Menschen leben auf 891.85 km²
    344.343 sqmi
    in Berlin.
  4. ... further results


Anzeige des Links zu weiteren Ergebnissen

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.



Diese Dokumentationsseite gilt für alle SMW-Versionen von 0.7 bis zur aktuellsten Version.
      Andere Sprachen: enzh-hans

Help:Template format de 0.7