© Evgeniy Pavlenko, 123rf
Die Wiki-Erweiterungen Semantic Mediawiki und Semantic Forms
Struktur fürs Wiki
von Rolf Strathewerd
Erschienen im Linux-Magazin
2009/07
In der Wikipedia stehen viele Fakten über Städte und Philosophen. Wer aber wissen will, welche Philosophen in Edinburgh seit 1700 zur Welt kamen, muss lange recherchieren. Da hilft nur Geduld - oder eine semantische Erweiterung für das Mediawiki.
Wikis sind hervorragende Werkzeuge, um mit wenig Aufwand Informationen zu erfassen und zu vernetzen. Aber wenn es um die Verarbeitung von strukturierten Daten geht, stoßen sie schnell an Grenzen. Wer mit Mediawiki-Software [1] beispielsweise Adressen- oder Termindatensätze sammeln will, kommt mit der Grundversion nicht allzu weit.
Attribute schaffen Struktur
Um strukturierte Daten erfassen zu können, entwickeln seit 2005 Markus Krötzsch, Denny Vrandecic, Max Völkel und etwa 30 weitere Entwickler mit Unterstützung des AIFB-Instituts der Universität Karlsruhe die Erweiterung Semantic Mediawiki, kurz SMW [2]. Ganz allgemein geht es darum, Wiki-Seiten mit Attributen (»ist Geburtsort«, »ist Homepage«) und deren Werten (»Köln«, »http://linux-magazin.de«) zu bereichern. Noch eins draufgesetzt haben Yaron Koren und andere, indem sie eine weitere Extension bauten, mit der sich die strukturierten Daten über Formulare pflegen lassen.
Einer strukturierten Datenerfassung in der Wikipedia am nächsten kommen derzeit die Infoboxen (Abbildung 1). Sie geben beispielsweise für Städte in einer immer gleich aufgebauten Übersicht Eckdaten wie Einwohnerzahl und Landkreis an. Diese Kästen beruhen auf Vorlagen (Templates), also Texten mit Platzhaltern, die der Bearbeiter im Artikel mit Werten bestückt. Da Mediawiki und die semantischen Erweiterungen gut eingedeutscht sind, lassen sich häufig sowohl englische als auch deutsche Bezeichnungen verwenden (Tabelle 1).

|
Abbildung 1: In der Wikipedia finden sich strukturierte Daten in solchen Infoboxen.
|
|
|
|
Englisch
|
Deutsch
|
|
Template
|
Vorlage
|
|
Property
|
Attribut
|
|
Has type
|
Datentyp
|
|
Special:Types
|
Spezial:Datentypen
|
|
Special:Ask
|
Spezial:Semantische_Suche
|
|
Concept
|
Konzept
|
|
Has default form
|
Hat Standardformular
|
Als Beispiel, das sich später zu einer richtigen Datenstruktur entwickeln soll, dient ein Personendatensatz, wie er in Listing 1 definiert ist. Um ihn dem Wiki bekannt zu machen, muss man »http://example.org/index.php/Vorlage:Person« ansteuern und mit dem Inhalt von Listing 1 füllen. Die Vorlage mit Werten zu füttern ist dann trivial, wie Listing 2 zeigt.
Auf diese Weise ist so etwas Ähnliches wie ein Personendatensatz mit vier Feldern entstanden. Der lässt sich hübsch anzeigen, aber viel mehr auch nicht. Es fehlen Datentypen sowie Abfragen, damit sich Daten ordentlich erfassen und auswerten lassen.
01 {|
02 ! Vorname
03 | {{{vorname}}}
04 |-
05 ! Nachname
06 | {{{nachname}}}
07 |-
08 ! Geburtsdatum
09 | {{{geburtsdatum}}}
10 |-
11 ! Geburtsstadt
12 | {{{geburtsstadt}}}
13 |}
|
01 {{Person
02 |vorname=Charles
03 |nachname=Babbage
04 |geburtsdatum=26.12.1791
05 |geburtsstadt=Walworth}}
06
07 {{Person
08 |vorname=David
09 |nachname=Hume
10 |geburtsdatum=7.5.1711
11 |geburtsstadt=Edinburgh}}
12
13 {{Person
14 |vorname=Pablo
15 |nachname=Picasso
16 |geburtsdatum=25.10.1881
17 |geburtsstadt=Malaga}}
|
Datenfelder und Datentypen
Diese Lücke füllt Semantic Mediawiki (SMW). Die Erweiterung ist Voraussetzung, um Datenstrukturen aufbauen zu können und mit einer Bedeutung zu versehen. Dazu gilt es zuerst, die zukünftigen Datenfelder mit Datentypen zu verknüpfen. Oder in der Sprache des SMW: Attribute sind zu definieren.
Angenommen in einem Wiki-Eintrag steht der Satz »David Hume wurde in Edinburgh geboren«, Edinburgh soll also das Attribut »attGeburtsstadt« erhalten. Dazu wandelt der Wiki-Benutzer das Wort »Edinburgh« zunächst in einen Link um und versieht diesen mit dem Attribut als Präfix:
David Hume wurde in [[attGeburtsstadt::Edinburgh]] geboren.
Unter »http://example.org/index.php/Attribut:attGeburtsstadt« finden sich jetzt diese und alle anderen Seiten aufgelistet, die das Attribut enthalten sowie die Werte des Attributs. Aus einer großen Menge von Personen lassen sich nun alle herausfiltern, die in Edinburgh geboren sind. Das ist der Grundstein für Abfragen im Semantic Mediawiki.
Da für »attGeburtsstadt« noch niemand einen Datentyp vergeben hat, bleibt es erst einmal beim Standarddatentyp »Page«. Die Schreibweise »attGeburtsstadt« hilft Attribute von Feldern und Platzhaltern zu unterscheiden.
Das Beispiel in Listing 2 besteht aus nur drei via Vorlage erfassten Datensätzen, in einem realen Wiki könnten das leicht Hunderte oder Tausende sein. Da wäre es mehr als mühsam, in jedem Datensatz jedes Datenfeld mit den entsprechenden Attributen zu garnieren. Mit Vorlagen geht das wesentlich leichter. Die einfache Vorlage ergänzt der Wiki-Admin um Attribute, und schon befindet sich ein Stück auswertbare Semantik im Wiki.
Und tatsächlich liefert die Wiki-Adresse »http://example.org/index.php/Attribut:attGeburtsstadt« jetzt vier Seiten. Zu diesem Zeitpunkt sind alle Attribute noch vom Typ »Page«. Für »attGeburtsdatum« ist das nicht so günstig. Es sollte vom Typ »Datum« sein, um später beispielsweise Übersichtsseiten der Form »Wer wurde alles im 18. Jahrhundert geboren?« mit einer einfachen Abfrage erstellen zu können.
Dazu ist »http://example.org/index.php/Attribut:attGeburtsdatum« aufzurufen. Auch wenn diese Spezialseite genau wie beim »attGeburtsstadt« eine Seitenliste anzeigt, existiert sie in Wirklichkeit noch nicht. Mit einem Klick auf »Erstellen« kann der Wiki-Verwalter das jetzt nachholen und dort den Text »[[Datentyp::Datum]] Dieses Attribut bezieht sich auf den Geburtstag von Personen« eingeben. Der erläuternde Text ist im Gegensatz zur Definition des Datentyps zwar nicht notwendig, aber auf alle Fälle hilfreich. Eine Übersicht über die verfügbaren Datentypen findet sich auf der Seite »http://example.org/index.php/Spezial:Datentypen«.
Die Entscheidung für einen bestimmten Datentyp ist meist leicht zu treffen. Lediglich die Wahl zwischen »String« oder »Page« ist nicht ganz so trivial. Im vorliegenden Beispiel taucht diese Frage beim Geburtsort auf. Falls die Absicht besteht, später den Geburtsorten noch weitere Daten hinzuzufügen, ist »Page« die bessere Wahl. Bleibt es mit Sicherheit allein beim Namen der Stadt, so ist »String« die richtige Entscheidung.
An dieser Stelle noch ein Hinweis aus der Praxis: Es ist nicht ratsam, mehrere Datensätze auf einer Seite unterzubringen. Denn es wird dadurch unklar, wovon die einzelne Seite handelt - also beispielsweise von welcher Person. Und diese Unklarheit zieht sich dann auch durch alle Abfragen.
| Whitepaper |
|
Open Source Datenintegration in der Praxis: Fallstudien und Anwendungsbeispiele
Über die letzten Jahre hinweg haben sich Open Source Lösungen als fester Bestandteil des gesamten Datenintegrationsmarktes etabliert. Viele Unternehmen haben bereits das Open Source Modell für Ihre Datenintegrationsprojekte aufgegriffen. Das vorliegende White Paper illustriert anhand ausgewählter Fallstudien und Anwendungsbeispiele die Implementierung von Open Source Datenintegration in der Praxis und benennt die daraus resultierenden Vorteile.
Download PDF (Registrierung erforderlich)
|
|
Usage Landscape Enterprise Open Source Data Integration
Die Nachfrage nach Datenintegrationslösungen für Unternehmen ist zunehmend gestiegen und vor allem das Interesse an Open Source Technologien wird immer größer. Doch wie und von wem werden Open Source Datenintegrationslösungen genutzt und welches Nutzungsverhalten lässt sich daraus ableiten? Das vorliegende White Paper präsentiert die Erfahrungswerte von über 1000 Open Source Nutzern und liefert fundierte Antworten auf diese Fragen.
Download PDF (Registrierung erforderlich)
|
Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links"
nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedrucken Fassung entsprechen.
|
KDZ,
24.06.2009 18:09