Semantic MediaWiki (SMW) ist eine kostenlose Open-Source-Erweiterung für MediaWiki - die Wikisoftware, die Wikipedia betreibt - mit der du Daten in den Wikiseiten speichern und abfragen kannst.
TBD
SMW Konzepte
- Attribute
- Abfragen
Daten abfragen und ausgeben
Daten, die mit einer Seite verknüpft sind, können durch das semantic Wiki auch wieder abgefragt und aus gegeben werden. Ein einfaches Interface zum Stellen dieser Fragen findest du unter Semantische Suche.
Dazu wird die Funktion {{#ask: ... }}
verwendet. Wie der Name ask
vermuten lässt, wird hiermit eine "Frage" an das Wiki gestellt.
Die Struktur einer Abfrage ist dabei immer gleich. Zuerst werden Bedingungen gestellt, zum Beispiel nur Seiten der Kategorie:Raumschiff. Danach können die Attribute angegeben werden, welche auf der Seite angezeigt werden sollen.
Alle verfügbaren Attribute einer Seite findest du auf der jeweiligen Seite im Menü oben Rechts (drei Punkte), unter dem Punkt Attribute anzeigen. Die dort aufgelisteten Attribute können in deiner Abfrage angezeigt werden.
Beispiel: Seiten in Kategorie Raumschiff
Hinter jedem Beispiel kannst du das Ergebnis der Abfrage sehen, indem du auf Ergebnis klickst. Auf der neu geöffneten Seite kannst du links auf den Stift klicken, um die Abfrage zu sehen und zu bearbeiten.
Anzeigen aller Seiten der Kategorie Raumschiff
{{#ask:[[Kategorie:Raumschiff]]}}
-> Ergebnis
Achtung: Dies listet alle Seiten in der Kategorie Raumschiff und allen Unterkategorien auch. Sowohl "normale" Inhaltsseiten, als auch Medien!
Um nur Inhaltsseiten aufzulisten müssen wir unsere Bedingung erweitern:
{{#ask:[[Kategorie:Raumschiff]]}[[:+]]}
-> Ergebnis
Der Zusatz von [[:+]]
grenzt alle Seiten, welche keine Inhaltsseiten sind aus.
Umgekehrt können wir auch nur alle Medien ausgeben, dazu ändern wir die Bedingung von [[:+]]
auf [[Datei:+]]
Dies listet aber weiterhin alle Seiten der Raumschiff und aller Unterkategorien auf. Wollen wir nur die Kategorie Raumschiff ausgeben, müssen wir unsere Bedingung erneut erweitern.
{{#ask:[[Kategorie:Raumschiff|+depth=0]][[:+]]}}
-> Ergebnis
Der Zusatz von [[|+depth=0]]
limitiert die tiefe der Kategoriesuche auf nur diese Kategorie.
Beispiel: Mehrere Bedingungen
Führen wir unser Beispiel von eben fort, indem wir unsere Suche weiter eingrenzen. Statt aller Raumschiffe, wollen wir jetzt nur die Raumschiffe des Herstellers Origin Jumpworks GmbH ausgeben.
Wir wissen dazu, dass im Wiki das Attribut:Hersteller existiert, und jede Raumschiffseite dieses Attribut verwendet. Wir erweitern unsere Abfrage um die Bedingung, dass das Hersteller gleich "Origin Jumpworks GmbH" sein muss:
{{#ask:[[Kategorie:Raumschiff|+depth=0]][[:+]][[Hersteller::Origin Jumpworks GmbH]]}}
-> Ergebnis
Beispiel: Attribute ausgeben
Bisher haben wir uns nur die Titel der Seiten ausgeben lassen, die zu unserer Bedingung passen.
Der große Vorteil von Semantic MediaWiki ist, dass wir zusätlich alle Attribute mit ausgeben können, die mit den ausgewählten Seiten verknüpft sind. Am Beispiel der Attribute der 300i sehen wir, dass jedes Raumschiff auch seine Länge, Breite, und Höhe speichert.
Wir erweitern unsere Abfrage um diese Attribute als Tabelle auszueben:
{{#ask:[[Kategorie:Raumschiff|+depth=0]][[:+]][[Hersteller::Origin Jumpworks GmbH]] |?Länge |?Breite |?Höhe |format=broadtable }}
-> Ergebnis
Daten mit einer Seite verknüpfen
Daten (Attribute) können auf mehreren Wegen mit einer Seite verknüpft werden. In fast allen Fällen geschieht die Verknüpfung hier im Wiki automatisiert bei der Verwendung von Vorlagen.
Existiert noch keine Vorlage, oder sollen Daten testweise verknüpft werden, so kannst du dies wie folgt tun.
Verknüpfung im Fließtext
Attribute können direkt im Fließtext einer Seite hinzugefügt werden, die Syntax lautet dabei [[Attribut::Wert]]
.
Am Beispiel des fiktiven Raumschiffes 200i fügen wir im Beschreibungstext die Länge und Breite des Raumschiffes hinzu:
Eingabe im Quelltext: Die 200i ist ein fiktives Raumschiff von Origin Jumpworks. Sie ist insgesamt [[Länge::17.5m]] lang und [[Breite::5m]] breit. Ausgabe auf der Seite: Die 200i ist ein fiktives Raumschiff von Origin Jumpworks. Sie ist insgesamt 17.5m lang und 5m breit.
In diesem Fall wäre das Attribut:Länge mit dem Wert 17.5m
und das Attribut:Breite auf der fiktiven Seite 200i gespeichert.
Verknüpfung ohne Textausgabe
Meistens ist es jedoch schwierig Attribute im Fließtext unterzubringen. Alternativ können alle Attribute gesammelt am Ende der Seite hinzugefügt werden. Dies geschieht über den Code {{#set:|Attribut=Wert}}
.
Ereut am Beispiel der 200i:
Eingabe im Quelltext: Die 200i ist ein fiktives Raumschiff von Origin Jumpworks. Sie ist insgesamt 17.5m lang. {{#set: |Länge=17.5m |Breite=5m }} Ausgabe auf der Seite: Die 200i ist ein fiktives Raumschiff von Origin Jumpworks. Sie ist insgesamt 17.5m lang.
Auch hier haben wir wieder beide Attribute mit der Seite verknüpft.