Hilfe:Semantische Vorlage

Von Stadtwiki

Wechseln zu: Navigation, Suche

Semantische Templates sind eine Möglichkeit das zusätzliche Markup (beziehungsweise Teile davon), das Semantic MediaWiki einführt, in gewöhnlichen MediaWiki Templates einzusetzen. Dies hat eine Reihe von Vorteilen:

Aus diesen Gründen seien semantische Templates insbesondere dann empfohlen, wenn Semantik in einer Community neu eingeführt wird. In der aktuellen Version von Semantic MediaWiki muss der Support für Templates gesondert aktiviert werden (die Beschreibung hierzu findet sich in den Installationshinweisen) und ist daher eventuell nicht standardmäßig verfügbar.

Inhaltsverzeichnis

Einfache semantische Templates – ein Beispiel

Templates, mit oder ohne Semantik, können eine sehr einfache Form haben. Beispielsweise kann für das Schreiben einer E-Mail Adresse in eine Wikiseite der Code

[mailto:max.muster@mann.de max.muster@mann.de]

verwendet werden und man erhält "max.muster@mann.de" als Resultat. Der Text nach dem Leerzeichen wird für die Anzeige verwendet, so dass "mailto:" verborgen bleibt. Um dies zu annotieren kann ein Attribut vom Typ string verwendet werden. Wenn dieses Attribut Attribute:email genannt wird, kann man das Folgende schreiben:

[[email:=max.muster@mann.de]]

Dies würde einfach als "max.muster@mann.de" im Artikel angezeigt werden. Zumeist möchte man sowohl Annotation wie auch den E-Mail Verweis nutzen und erreicht dies über:

[[email:=max.muster@mann.de|[mailto:max.muster@mann.de max.muster@mann.de]]].

Dies kann jedoch kaum als sehr benutzerfreundlich bezeichnet werden. Unter Verwendung eines semantischen Templates kann also nun ein Template Email erzeugt werden, dass den komplexen Mark-up Code vor dem Benutzer verbirgt und ihm erlaubt

{{Email|max.muster@mann.de}}

zu schreiben, was deutlich lesbarer ist. Um das zu erreichen, muss das Template wie folgt gestaltet werden:

[[email:={{{1}}}|[mailto:{{{1}}} {{{1}}}]]]

Zu beachten ist, dass das "email:="-Attribut nicht die Template Wikiseite annotiert, sondern erst bei der Einbindung in andere Seiten zur Anwendung kommt. Dies ist die Standardeinstellung von Semantic MediaWiki. Falls diese Einstellung verändert wurde (vom Administrator), dann sollte der Template Code mittels <includeonly>-Tags eingebunden werden, um zu verhindern, dass die Template Wikiseite selbst annotiert wird. Analog kann auch <noinclude> verwendet werden, um Dokumentation für die Benutzer auf der Template Wikiseite zur Verfügung zu stellen.

Semantische Templates richtig verwenden

Obwohl die obigen Muster es erlauben, semantische Templates beliebiger Komplexität zu schaffen, gibt es einige Punkte, die dabei beachtet werden müssen.

Automatische Annotation erfordert genaue Formate

Der Benutzer kann durch Template Felder automatisch annotieren, jedoch müssen in diesem Fall die Werte dem erwarteten Format entsprechen. Beispielsweise ist es eine gute Idee, die Bevölkerung einer Stadt mit einem Attribut mit ganzzahligem Typ zu annotieren. Betrachtet man aber die Infobox in einem Template wie wikipedia:France, dann liefert der Eintrag für die Bevölkerung nicht nur einen einzigen Wert oder auch nur eine Menge von Werten. Stattdessen gibt es mehrere Zahlen und kontextabhängige Erklärung ihrer Bedeutung. Solche Sonderfälle sollten beim Entwurf eines Templates im Hinterkopf bleiben.


This is also a major reason why semantic templates are not a suitable replacement for annotations in Semantic MediaWiki. There are cases where existing templates can be evaluated in a quite semantic way, but often the user still has to add semantic mark-up to make the data machine-processable. E.g. in the case of France, one might decide to leave "population" a normal text-entry, and leave it to the user to specify [[population:=...]] where appropriate in this text.

Optionale Einträge und Bedingungen

In Templates ist es allgemein sehr nützlich, optionale Parameter zu erlauben. In vielen Artikel ist zu erwarten, dass die Benutzer nicht alle möglichen Werte der Infobox angeben wollen (oder können) und diese würde in solchen Fällen nur leere Zeilen zeigen. Semantische Templates würden sogar Fehlermeldungen anzeigen, wenn mit einem leeren Wert annotiert werden soll. Um dies zu verhindern ist es hilfreich, Bedingungen in den Templatecode zu integrieren, die eine Zeile (und ihre Annotierung) nur dann anzeigen, wenn ein Wert angegeben wurde.

Dies kann mit der MetaWiki-Erweiterung meta:ParserFunctions erreicht werden. Diese Erweiterung ist vollständig unabhängig von Semantic MediaWiki und für die Benutzung sie auf die Originaldokumentation verwiesen. Darüber hinaus enthält Wikipedia zahlreiche Beispiele für Parser Funktionen in Templates, so zum Beispiel in wikipedia:Template:Taxobox. Parser Funktionen führen üblicherweise zu eher schlecht lesbarem Code, der jedoch den Benutzern eine deutliche Vereinfachung bietet.

Inline queries in Templates und Templates in Inline queries

Es ist ebenfalls möglich, Inline queries in Templates zu verwenden. Dies kann beispielsweise verwendet werden, um dynamisch Navigationseinträge anzuzeigen, die Material anzeigen, das zu einem bestimmten Thema gehört.

Die umgekehrte Möglichkeit, also die Benutzung von Templates in Inline queries ist derzeit nur eingeschränkt möglich. Jedoch kann man bereits {{PAGENAME}} in einer Anfrage benutzen, um so die Resultate zu erhalten, die sich auf die aktuelle Seite beziehen. Dies ist äußerst nützlich in Kombination mit der Verwendung von Anfragen in Templates: Es kann ein Template geschaffen werden, dass benutzerdefinierte Informationen über die aktuelle Seite anzeigt.

Dieser Artikel basiert auf dem Artikel Hilfe:Semantische Vorlage vom 10.07.2007 aus der Stadtwiki-Allmende. Die Liste der bisherigen Autoren befindet sich in der Versionsliste. Wie hier stehen alle Texte der Allmende unter der CC-Lizenz by-nc-sa.


Der Artikel wird auf Allmende gepflegt und ist daher hier gesperrt, es gibt aber eine lokale Diskussionsseite für Fragen.

Meine Werkzeuge
Namensräume
Varianten
Aktionen
Navigation
Themenportale
Unterstützt von
Werkzeuge