Schulungsunterlagen

Zum Erstellen, Bearbeiten und Abfragen von Seiten mit Semantic MediaWiki, sind folgende Elemente nötig:

  • Attribute: Legen fest, welche Werte später abgefragt werden können.
  • Vorlage(n): Definiert, wie die Seiten aussehen, an welcher Stelle die Formulareingaben ausgegeben werden und was als Attributwert geschrieben wird.
  • Formular: Hier wird angegeben, welche Werte erfasst werden und auch, auf welche Weise (es gibt verschiedene Feldtypen und Optionen).
  • Kategorie: Ermöglicht das Bearbeiten mit dem Formular und ist neben den Attributen ein wichtiges Mittel zum Abfragen und Filtern der Seiten.

Die im Folgenden aufgeführten Schritte haben eine logische Reihenfolge, welche das Erstellen der ineinandergreifenden Elemente erleichtert. Diese ist aber nicht fest vorgegeben und nur ein Vorschlag.

Überlegungen vorab[Bearbeiten | Quelltext bearbeiten]

Zunächst sollte festgelegt werden, welche Struktur die zu erstellenden Seiten grundsätzlich haben sollen.

Vor allem sollte eine erste Idee vorhanden sein, welche Attribute verwendet werden sollen, d.h. welche Informationen der Seite von Relevanz für spätere Abfragen sind.

Beispiel: Wir möchten Kundendaten semantisch erfassen. Jeder Kunde bekommt eine eigene Wikiseite, auf der wir Daten, wie den Standort, Ansprechpartner und das Datum des ersten Kontaktes festhalten möchten.

Nomenklatur[Bearbeiten | Quelltext bearbeiten]

Es bietet sich an, alle beteiligten Dokumente gleich zu benennen. In unserem Beispiel hätten wir dann etwa Vorlage:Kunde, Formular:Kunde und Kategorie:Kunde. Auch ein entsprechender Namensraum "Kunde" ist denkbar bzw. sinnvoll.

Bei den Attributen sollte man etwas differenzieren, da z.B. ein "Standort" evtl. auch bei anderen Seiten Verwendung finden kann.

Man kann hier mit einer Art Unterseitensystem arbeiten und z.B. mit den Attributen Attribut:Kunde/Standort, Attribut:Kunde/Erstkontakt, etc. arbeiten. Soll "Standort" auch an anderer Stelle verwendet werden, bietet es sich an, stattdessen Attribut:Standort zu wählen. Bei Attributen, die eindeutig einem Anwendungsfall zuzuordnen sind oder wenn es mehrere Anwendungsfälle gibt, die das Attribut auf unterschiedliche Weise verwenden, ist es sinnvoll, diese auch entsprechend zu benennen. So kann beispielsweise Attribut:Kunde/Vertragsnummer eine laufende, ganzzahlige Nummer sein, aber Attribut:Partner/Vertragsnummer Einträge wie "1.1.5" und "4.3.7" enthalten.

Attribute anlegen[Bearbeiten | Quelltext bearbeiten]

Attribut erstellen.png

Auf der Spezialseite Spezial:Attribut erstellen können sehr einfach neue Attribute erstellt werden und gleichzeitig der Datentyp, sowie ggf. vorgegebene Werte angegeben werden.

Mögliche Datentypen sind etwa:

  • Wikiseite
  • Text
  • Datum
  • Zahl
  • Wahrheitswert

Die richtige Wahl des Datentyps ist insofern wichtig, da bei Abfragen z.B. eine Datumsangabe im (passenden) Typ "Datum" anders sortiert wird, als mit dem Typ "Text".

Das Anlegen der Attributsseiten ist zwar optional, wenn Sie diesen Schritt aber überspringen, erhalten alle Attribute den Standardtyp "Seite", was die Ausgabe von Abfragen unschön und ggf. verwirrend erscheinen lassen kann.

Vorlage erstellen[Bearbeiten | Quelltext bearbeiten]

Vorlage erstellen.png

Über Spezial:Vorlage erstellen kann leicht eine Vorlage erstellt werden, die auf bereits vorhandene Attribute zurückgreift.


Hinweis: Die Feldnamen können beliebig gewählt werden. Sie ermöglichen die Kommunikation zwischen Vorlage und Formular und werden auch nur dafür verwendet. D.h. in Vorlage/Formular:Kunde kann derselbe Feldname verwendet werden, wie in einem anderen Formular, allerdings müssen die Feldnamen innerhalb eines Formulars einzigarig sein.

Im unteren Teil der Spezialseite, können verschiedene Stylingoptionen, wie etwa als seitlicher Kasten, ausgewählt werden. In der Regel wird man das Styling aber dennoch manuell nacharbeiten müssen. Spätestens wenn man nach der initialen Erstellung der Vorlage noch etwas ändern will, muss man sich mit dem Quelltext auseinandersetzen.

Formular erstellen[Bearbeiten | Quelltext bearbeiten]

Auf Spezial:Formular erstellen kann ein zugehöriges Formular erstellt werden, dass sowohl die bereits vorhandene Vorlage, als auch die darin verwendeten Attribute einbindet.

Hier können verschiedene Feldtypen ausgewählt werden, Beispiele dafür sind:

  • (einfaches) Textfeld
  • Textarea (ggf. mit visuellem Editor)
  • Dropdown
  • Checkbox
  • Radio-Buttons
  • Datumsauswahl

Die Spezialseite formatiert das Formular als zweispaltige Tabelle, was im Nachhinein natürlich noch angepasst werden kann, aber an sich ist für die Formular-Ansicht nicht vorgesehen, dass ein spezielles Styling verwendet wird.

Kategorie anlegen[Bearbeiten | Quelltext bearbeiten]

Spezial:Kategorie erstellen ermöglicht es, eine Kategorie zu erstellen und gleichzeitig das bereits vorhandene Formular mit allen Seiten zu verknüpfen, die die Kategorie verwenden.

Neue Seiten erstellen[Bearbeiten | Quelltext bearbeiten]

Haben Sie die oben erwähnten Schritte ausgeführt, können Sie jede Seite mit der erstellten Kategorie "mit Formular bearbeiten", d.h. neue Seiten müssen zunächst angelegt und mit der Kategorie verknüpft werden, damit der Mechanismus mit Formular/Vorlage greift.

Das geht natürlich einfacher... Zum Einen kann ein "magisches Wort" verwendet werden, welches ein Eingabefeld samt "Erstellen"-Button erzeugt. Hier geben Sie den Titel der zu erstellenden Seite ein, welche per Klick auf den Button erstellt wird und es wird direkt die Formularbearbeitung gestartet.

Außerdem ist es möglich, eine "One-Click-Variante" davon zu gestalten, d.h. ohne Benutzereingabe wird per Knopfdruck eine neue Seite erstellt. Diese muss natürlich auch einen Titel haben. Dieser kann aus einem vorgegebenen Textbaustein (z.B. "Protokoll") bestehen, aber er muss auch einen einzigartigen Teil haben. Hier wird meist ein Zeitstempel (Datum/Uhrzeit der Erstellung) oder eine laufende Nummer verwendet.

Bei beiden Varianten kann vorher ein Namensraum angegeben werden, in dem die neuen Seiten abgelegt werden. Es ist auch möglich, die neuen Seiten als Unterseiten einer bestimmten Seite anzulegen. So kann z.B. durch Klick auf einen Button eine Seite mit dem vollständigen Titel Protokoll:Übersicht/2020-09-17 erstellt werden (Namensraum "Protokoll", übergeordnete Seite "Übersicht" und Zeitstempel als Titel).


Für Fortgeschrittene[Bearbeiten | Quelltext bearbeiten]

Zusammenspiel von Wikiseiten und Bearbeitung mit Formular[Bearbeiten | Quelltext bearbeiten]

#default_form[Bearbeiten | Quelltext bearbeiten]

Oben wurde beschrieben, wie auf Seiten mit einer gewissen Kategorie die Standardfunktion des Bearbeiten-Buttons zu "Mit Formular bearbeiten" geändert werden kann: Auf der Kategorieseite wird die Parserfunktion {{#default form:Formularname}} verwendet.

Es gibt aber noch weitere Möglichkeiten, die Bearbeitung mit Formular für bestimmte Seiten zu ermöglichen.

Wenn man keine Kategorien verwenden möchte, kann die Parserfunktion auch in der vom Formular verwendeten Vorlage aufrufen. Im Vergleich zur Variante mit Kategorie, ist der einzige Unterschied, dass man so die Seiten, die ein bestimmtes Formular verwenden nicht so einfach über eine semantische Abfrage auflisten kann. Je nach inhaltlicher Struktur des Wikis kann in der Abfrage natürlich nach dem Namensraum, Bestandteilen des Seitentitels oder anhand einer Unterseitenstruktur gefiltert werden - in jedem Fall kann direkt nach den verwendeten Attributen gefiltert werden. (Nachteil: Es kann "Ausreißer" geben, die nicht den oben genannten Bedingungen entsprechen und so nicht erfasst werden. Vorteil: So kann man "Ausreißer" erstellen, die nicht automatisch über die Kategorie erfasst werden.)

Noch individueller geht das, indem man {{#default form:Formularname}} explizit (also weder in der Vorlage, noch über eine Kategorie) auf einzelnen Wikiseiten verwendet. Das ist zwar ein sehr spezieller Anwendungsfall, aber ebenso möglich.

Weitere Möglichkeiten[Bearbeiten | Quelltext bearbeiten]

Natürlich will man seine Seiten mit dem eigens erstellten Formular bearbeiten können, aber meistens ist davon nur ein kleiner Teil der Seite betroffen - z.B. eine Infobox - und der eigentliche Inhalt der Seite kann dann nur über ein Freitextfeld (mit eingeschränkten Editorfunktionen) oder über den Quelltext bearbeitet werden.

Daher kann es oft sinnvoll sein, die Formularbearbeitung nicht an den Standard-Bearbeitungs-Button zu knüpfen, sondern einen separaten Link zu erzeugen. So kann die Seite wie gewohnt bearbeitet werden und zum ändern der semantischen Daten gibt es einen eigenen Link, über den man eben nur diesen Teil bearbeiten kann.

Link zum Bearbeiten mit Formular im Seiteninhalt

Dies kann z.B. in dem Bereich geschehen, wo die Daten aus dem Formular angezeigt werden. Der Link zeigt auf die Spezialseite Spezial:Mit Formular bearbeiten und beinhaltet sowohl das gewünschte Formular, als auch die Seite, die bearbeitet werden soll. Da es sich hier in der Regel um die Seite handelt, auf der man sich gerade befindet, ist es sinnvoll, hier das magische Wort {{FULLPAGENAME}} zu verwenden.

Fazit: An Stelle die Formularbearbeitung über die Verwendung einer Kategorie zu handhaben, ist es oft wünschenswert, einen separaten Link zu setzen. Dieser kann im Prinzip beliebig platziert und gestaltet werden. Sinnvollerweise sollte dieser aber Teil der entsprechenden Vorlage sein und die Form [[Spezial:Mit Formular bearbeiten/FORMULARNAME/{{FULLPAGENAME}}|Metadaten bearbeiten]] haben.

Ob es sich hier nun um einen Textlink, ein Icon oder ein Bild handelt, ist jedem selbst überlassen.

Unterobjekte (subobjects)[Bearbeiten | Quelltext bearbeiten]

Beim Arbeiten mit semantischen Attributen, können einem Attribut zwar mehrere Werte zugeordnet werde, aber diese sind dann "gleichberechtigt" und es ist keine weitere Zuordnung möglich.

Beispiel: In unseren Kundendaten erfassen wir "Standort" und "Ansprechpartner". Gibt es mehrere Standorte mit unterschiedlichen Ansprechpartnern, ist so keine eindeutige Zuordnung "Nürnberg - Herr Müller", "München - Frau Schmidt" möglich.

"Subobjects" ermöglichen es, einer Seite verschiedene Datensätze zuzuordnen. Wird auf einer Seite beispielsweise

{{#subobject:
|Kunde/Standort=Nürnberg
|Kunde/Ansprechpartner=Herr Müller
}}

verwendet, ist eine eindeutige Zuordnung möglich. So können auch weitere Datensätze für andere Standorte hinzugefügt und individuell abgefragt werden. Möchte man z.B. den Ansprechpartner für den Standort München ausgeben, kann die entsprechende Abfrage wie folgt aussehen:

{{#ask:[[Kunde:+]][[Kunde/Standort::München]]
|?Kunde/Ansprechpartner
|format=table
}}

So werden alle Seiten im Namensraum "Kunde" durchsucht, bei denen als Standort "München" angegeben ist und neben dem Seitentitel wird der zugehörige Ansprechpartner in Form einer Tabelle ausgegeben.

So werden natürlich alle Kundendaten mit dem Standort "München" abgefragt, die Abfragebedingung kann aber z.B. auf einen einzelnen Kunden eingeschränkt werden.

Anonyme und benamte Unterobjekte[Bearbeiten | Quelltext bearbeiten]

Unterobjekten kann auch ein Name zugeordnet werden, z.B. durch

{{#subobject: Kontaktdaten
|Name=Hallo Welt! GmbH
|Straße=Maximilianstraße 9
|Ort=93047 Regensburg
}}

Ein Vorteil davon ist, dass nach Seiten gesucht werden kann, die ein Unterobjekt "Kontaktdaten" verwenden. Der Nachteil ist, dass es bei Mehrfachverwendung auf derselben Seite zu verschiedenen Werten im selben Attribut kommt, d.h. auf diese Weise muss jedes Mal ein einzigartiger Name, hier: "Kontaktdaten", verwendet werden.

Beispiel[Bearbeiten | Quelltext bearbeiten]

Bei Protokollen bietet es sich beispielsweise an, "Action Points" zu verwenden, wenn bis zum nächsten Termin eine Handlung eines Teilnehmers erforderlich ist.

In der Praxis würde man hier natürlich eine Vorlage verwenden, aber der essenzielle Ihnalt würde etwa so aussehen:

{{#subobject:
|AP/Name=Müller
|AP/Aufgabe=Bestandskunden über Neuigkeiten informieren.
|AP/Status=offen
}}
{{#subobject:
|AP/Name=Schmidt
|AP/Aufgabe=Vertragsvorlagen überarbeiten.
|AP/Status=50%
}}

So werden zwei (eigenständige!) Unterobjekte erzeugt, die einzelne Datensätze darstellen. Es können jetzt beispielsweise alle "Action Points" abgefragt werden, die den Mitarbeiter "Müller" betreffen und den Status "offen" haben.

Hinweis: Wäre hier ein Name (d.h. derselbe Name) für die Unterobjekte vergeben worden, würde nur ein Datensatz erzeugt werden, der bei den Attributen "AP/Name", "AP/Aufgabe", etc. jeweil zwei Werte besitzt, die nicht mehr eindeutig zugeordnet werden können. Die Information, welche Aufgabe z.B. "Müller" zu erfüllen hat, ginge so also verloren.
Keine Kategorien vergebenBearbeiten

Diskussionen