Testumgebung SMW+ (Teil 2)

Nun hat man ein ziemlich leeres Wiki, allerdings lediglich mit Grundfunktionen ausgestattet. Um hier ohne großen Aufwand mit diversen Erweiterungen experimentieren zu können, kann man das mitgelieferte Deployment Framework verwenden.

  1. Zunächst muss man der virtuellen Maschine (vorübergehend zur Installation) Zugang zum Internet gewähren.
    1. In der VM mit den in der mitgelieferten Readme genannten Login und Passwort anmelden, ‘su’ eingeben und das gleiche Passwort erneut angeben.
    2. Die Maschine mit dem Befehl ‘shutdown -h now’ in der Kommandozeile herunterfahren.
    3. In der Verwaltung von VirtualBox im Bereich Netzwerk eine Variante auswählen, bei der die VM über den Host Zugriff auf das Internet hat, zB ‘NAT’
    4. Die VM erneut starten, sich anmelden und mit ‘su’ wieder Rootrechte erhalten
  2. Den Ordner des Deployment Frameworks erreicht man mit ‘cd /usr/share/mediawiki/deployment/tools’
  3. Hier kann man nun mit dem Befehl ‘sh smwadmin -l’ sehen, welche der angebotenen Extensions installiert sind. Weitere Informationen findet man in der Hilfe des Deployment Frameworks.
  4. Eine Übersicht der unterstützten Extensions mit verlinkten Dokumentationen findet man hier.
  5. Ich empfehle mindestens Semantic Forms und Semantic Result Formats!
  6. Erfahrungsgemäß kommt es gelegentlich zu nicht-funktionierenden Installationen bei Verwendung des Deployment Frameworks. Hier kann man auf die vom DF gesetzten Sicherungspunkte zurückspringen und kann es in einer anderen Installationsreihenfolge versuchen.
Viel Spaß beim Experimentieren!

Testumgebung SMW+ (Teil 1)

Aktuell komme ich nicht dazu, mir ausreichend Zeit für die Fortsetzung meines Artikels über die Verwendung semantischer Wikis zu nehmen – wird sicher bald wieder besser.

Aber mal eine kurze Anregung für Leute, die sich mal schnell einen eigenen Server mit Semantik Mediawiki, Lucene, Solr aufsetzen wollen:

  1. VirtualBox installieren (Ermöglicht den Betrieb virtueller Maschinen, läuft auf den gängigen Betriebssystemen)
  2. SMW+ Community Edition VMWare Image herunterladen
  3. VirtualBox starten,
    1. Eine neue VM erstellen
    2. Einen Namen vergeben
    3. Betriebssystem Linux -> Debian
    4. Speicher zuweisen (512M funktioniert bei mir ausgezeichnet)
    5. Das geladene VMWare-Image entzippen
    6. Als vorhandene Festplatte aus dem entpackten Ordner debian vmwar image.vmdk auswählen
    7. Erstellung abschließen
  4. In VirtualBox unter Einstellungen -> Netzwerk ein Host-only-Netzwert erstellen
  5. Dieses in der Konfiguration der VM als Netzwerk auswählen
  6. Die VM starten (Die virtuelle Maschine startet nun in einem eigenen Fenster, was eine Weile dauert.)
  7. Im Fenster sollte nach dem Bootvorgang ein Hinweis erscheinen, unter welcher Adresse man das Wiki in einem beliebigen Browser auf dem Hostrechner erreichen kann. Etwa: http://192.168.x.y/mediawiki/
  8. Hier hat man nun ein funktionierendes Semantik Mediawiki mit Grundfunktionen.
Der gesamte Vorgang sollte exclusive Ladezeiten der Dateien nur wenige Minuten dauern.

Was macht man mit einem semantischen Wiki? (Teil 1)

Offenbar bin ich durchaus eingenommen von semantischen Wikis. Was fasziniert mich nun aber daran, was kann man eigentlich damit machen?

Grundsätzlich sehe ich die Stärke dieser Systeme in der Möglichkeit, gleichermaßen und auf relativ intuitive Art und Weise mit strukturierten, teilstrukturierten und unstrukturierten Daten umzugehen.

Zur Erläuterung:

  • Strukturierte Daten sind Daten, die in einer (unterliegend mathematisch definierten) Struktur abgelegt sind. Über diese Datenstruktur ist es möglich, auf die Daten zuzugreifen, nämlich über (im Grunde wieder mathematisch formulierte) Funktionen oder Abfragen. Einfache Beispiele sind Listen oder Arrays oder Daten in einer relationalen Datenbank. Alle Inhalte einer Computeranwendung liegen auf unterster Ebene natürlich strukturiert vor – hier wollen wir aber jeweils höhere, dem Nutzer zugängliche Ebenen betrachten.
    • Beispielabfrage: Zeige mir das dritte Element der Liste L an.
  • Teilstrukturierte Daten sind solche, die nicht grundsätzlich in einer festgelegten Struktur abgelegt sind, aber weiterführende (Meta-)Daten in sich tragen. Ein klassisches Beispiel sind XML-Dateien oder sematisch annotierte Inhalte. Man kann diese Daten über die Metadaten abfragen.
    • Beispielabfrage: Zeige mir alle Objekte, bei denen genau einmal das Attribut Vorname und genau einmal das Attribut Nachname gesetzt ist.
  • Unstrukturierte Daten sind jene, bei denen keine Struktur und keine inheränten Metadaten gesetzt sind. Hier kann man sich Textdokumente oder klassische Wikiseiten vorstellen. Man kann diese nach Mustern in ihrem Inhalt durchsuchen.
    • Beispielabfrage: Suche alle Objekte, in denen das Wort Jubiläum vorkommt.

Was bedeutet es nun, auf relativ intuitive Art und Weise mit diesen verschiedenen Datenarten in einem System umgehen zu können?

Es bedeutet, dass man eine Ontologie definieren kann, die Teile oder die Gesamtheit der gegebenen Daten erfassen kann. Man bildet damit eine Metastruktur darüber, die es erlaubt, die gegebenen Daten miteinander anzureichern und über die Gesamtheit abzufragen.

Nicht konkret genug? Geduld bis zum nächsten Teil dieser Serie…

Grundlagen

Beginnen wir mit einer grundsätzlichen Betrachtung zum von mir ‘semantisches Content Management’ genannten Feld. Meine Aussagen beschreiben hier mein persönliches Verständnis, über andere Sichten oder Hinweise auf Fehler in meinem Verständnis freue ich mich immer!

Anders als bei den Ansätzen eines relationalen Systems, das die Informationen in einem vorher entworfenen Datenmodell verhältnismäßig starr ablegt und ihre Verwendungsmöglichkeit und Bedeutung damit implizit fixiert, werden bei Verwendung von Konzepten des Semantic Web die Informationsartefakte inhärent mit den für sie relevanten Eigenschaften versehen. Dies kann ungewichtet durch einfache Tags bzw. Schlüsselwörter geschehen, oder gewichtet, indem vorher (oder auch im Nachhinein) definierte Eigenschaften mit Werten versehen werten, man spricht hier von Annotation. Dies geschieht in sogenannten Triples aus Subjekt, Prädikat und Objekt. Beispiel: Nico Frieling → hat_wohnort → Gütersloh. Die w3c stellt hierfür ein standardisiertes Dateiformat zur Verfügung, das Resource Description Framework (RDF).

Es entsteht eine Wolke nicht grundsätzlich unterschiedlich gewichteter Artefakte, die rein Ihrer Eigenschaften nach abgefragt werden können. Beispiel: Nenne mir alle Mitarbeider mit Wohnort Gütersloh. Um hier eine sinnvolle Vorgabe zu machen, welche Eigenschaften für welche Artefakte sinnvoll oder auch obligatorisch sind, erstellt man eine formale Abbildung der Bedeutungen mit ihren Zusammenhängen und, so nötig, ihrem Geltungsbereich, eine sogenannte Ontologie. Auch hier gibt es ein standardisiertes Dateiformat, die Web Ontolgy Language (OWL).

Da diese Ontologien ein dem Menschen verständliches Bedeutungsmodell abbilden, kann man Abfragen gegen die Datenmenge zwar noch nicht in der Form, aber im Inhalt so stellen, wie man sie einem Menschen stellen würde. Beispiel: In welchen Bundesländern gibt es Minigolfspieler, die sich mit Semantic Web beschäftigen? Auch für diese Abfragen gibt es einen Standard, wenn auch viele Anwendungen zusätzlich sinnvolle, proprietäre Lösungen haben: die SPARQL Query Language for RDF (SPARQL).

Da die Bedeutungsebene (OWL) getrennt von der Informationsebene (RDF) ist, kann man leicht neue Ontologien auf bestehende, annotierte Datenmengen abbilden. Ebenso kann man vorliegende, strukturierte Informationen durch Mapping in eine semantische Datenwolke überführen und durch eine übergreifende Ontologie mit den vorhandenen Informationen anreichern. Ähnlich wie bei der Business Intelligence/Online Analytical Processing kann man hierdurch Verknüpfungen von Daten aus unterschiedlichen Quellen realisieren. Da hierfür keine definierten Cubes vorausgesetzt sind, kann man Informationen verständlicher und flexibler verknüpfen, aggregieren und auswerten.

Nutzt man die semantische Datenbasis zur klassischen Darstellung von Inhalten, kann man relevante Daten ohne Redundanz (natürlich abgesehen von Sicherungen) ablegen und an den notwendigen Stellen lediglich referenzieren. Dies ermöglicht es, Inkonsistenzen bereits auf konzeptioneller Ebene auszuschließen.