Semantische Wikis

Aus THM-Wiki
Wechseln zu: Navigation, Suche
Dokumentation
Arbeitstitel Semantische Wikis
Kurs Informatikseminar SS 2006
Semester SS 06
Teilnehmer J. Ansorg


In diesem kleinen Seminar wird das Konzept der sogenannten "semantischen Wikis" vorgestellt. Zu Beginn werden die technischen Hintergründe erläutert und anschließend auf semantische Wikis im Speziellen eingegangen.

Semantik

Die Semantik ist eine für dieses Thema grundlegende Thematik, daher soll hier kurz erklärend auf sie und thematisch verwandte Themen eingegangen werden.

Worterklärungen

  • Taxonomie: In der IT bezeichnet dieser Begriff ein Klassifikationssystem, den Vorgang des Klassifizierens bzw. eine Systematik. Siehe auch Taxonomie.
  • Ontologie: Ontologien werden in der Informatik zur Wissensrepräsentation verwendet und bezeichnen ein System von Konzepten und Relationen. Eine Ontologie enthält weiterhin Regeln zur Inferenz, also zur Bildung von Schlussfolgerungen und Regeln zur Wahrung der Integrität. Detaillierte Informationen sind auf Wikipedia verfügbar: Ontologie.

Allgemeines

"Semantik" ist die sogenannte Bedeutungslehre und beschäftigt sich mit Sinn und Bedeutung von Sprache bzw. sprachlichen Zeichen. In diesem Kapitel soll kurz auf die sogenannten semantischen Netze und die darauf aufbauende Idee des semantischen Internets eingegangen werden.

Semantische Netze

Assoziatives Netzwerk eines Menschen (Quelle:Wikipedia)

Semantische Netze sind eine für den weiteren Teil dieses Dokumentes wichtige Grundlage, daher soll hier kurz darauf eingegangen werden.

Ein solches Netz ist eine formale Erfassung von Begriffen und ihren Beziehungen. Es wird meist in Form eines verallgemeinerten Graphen erfasst, in dem die Knoten den Begriffen entsprechen und die Kanten die Relationen bezeichnen. Die Relationen können sehr unterschiedlich sein, sie können zum Beispiel folgende Werte annehmen:

  • Hierarchische Relation
    • Vererbungsrelation: Eine solche Relation gibt an, dass z.B. ein Professor ein Mensch ist. Diese Eigenschaft ist transitiv, d.h. wenn weiterhin definiert wurde, dass ein Mensch ein Lebewesen ist, dann gilt automatisch, dass ein Professor auch ein Lebewesen ist, d.h. es muss keine eigene Kante von Professor zu Lebewesen gezeichnet werden.
    • Instanzrelation: Bezeichnet, dass z.B. Dr. Horst Köhler eine Instanz der Klasse "Professor" ist.
    • Partitive Relation: Wird verwendet, um eine Teilbeziehung auszudrücken. So ist z.B. das Fell ein Teil des Hundes Bello.
  • Synonymie: Bezeichnet die Bedeutungsgleichheit von zwei Begriffen. So wird z.B. Handy auch als Mobiltelefon bezeichnet. Ein Synonym ist reflexiv, symmetrisch und transitiv.
  • Antonymie: Bezeichnet die Gegensätzlichkeit von zwei Dingen. So ist "tot" das Antonym zu "lebendig". Eine solche Beziehung ist nur symmetrisch.

Semantisches Internet

Tim Berners-Lee
"The Semantic Web is not a separate Web but an extension of the current one, 
in which information is given well-defined meaning, better enabling computers 
and people to work in cooperation."
--Tim Berners-Lee

Das semantische Internet ist eine Initiative des WWW-Begründers Tim Berners-Lee. Ziel ist es, das Internet mit einer maschinenlesbaren Definition der jeweiligen Semantik der Inhalte zu erweitern.

Bisher ist es Suchmaschinen nur möglich, Seiten aufgrund der Schreibweise des Inhalts zu finden. Thematische Verwandschaft der Seiten untereinander kann von Suchmaschinen nicht erkannt werden, falls keine Links gesetzt sind. Einfach gesagt soll versucht werden, die Beziehungen zwischen zwei Seiten (Links) durch eine Eigenschaft dieser Verbindung zu erweitern, d.h. es soll die bislang immer gleiche Beziehung von zwei Seiten eines Links mit einer Bedeutung versehen werden. Die Metadaten sollen im sogenannten Resource Description Framework (RDF) erfasst werden, als Beschreibungssprache soll die auf RDF basierende Web Ontology Language (OWL) dienen.

RDF

"RDF" steht für "Ressource Description Framework" und wird vom W3C spezifiziert. Mittels RDF ist es möglich, Dinge, deren Eigenschaften und Verknüpfungen zwischen ihnen zu erfassen. In diesem Unterkapitel soll auf den generellen Aufbau, die möglichen Arten der Speicherung und auf eine Erweiterung namens RDFS eingegangen werden.

Aufbau

Mit RDF können Aussagen über Dinge gemacht werden. Eine solche Aussage, auch Statement genannt, besteht aus drei Teilen:

  • Ressourcen / Subjekt: Die Dinge, die beschrieben werden. Dies kann eine Webseite, ein Gegenstand und jede andere eindeutig zu bezeichnende Sache sein. Wichtig ist, dass das Subjekt eindeutig bezeichnet wird, z.B. geschieht dies bei einer Webseite durch eine sogenannte URI.
  • Eigenschaftselement / Prädikat: Ein Prädikat gibt eine Information über das Subjekt und verbindet dieses so mit dem Objekt.
  • Objekte: Beschreibt den Wert eines Prädikats. Ein Objekt kann einen einfachen Wert haben, in RDF wird dies als Literal bezeichnet. Es kann jedoch wiederum eine Ressource sein und somit Verknüpfung von Ressourcen ermöglichen.

In RDF ist ein Statement immer ein Tripel aus Subjekt, Prädikat und Objekt. Gültige Statements sind z.B. diese Aussagen:

In RDF werden Ressourcen immer mit sogenannten URIs erfasst, also eindeutigen Bezeichnern. Diese werden oft als URLs angegeben.

RDF grafisch

Ein einfacher RDF Graph (Quelle: Wikipedia)

Die mit RDF erfassten Informationen können grafisch dargestellt werden. Das W3C hat sich für diese Möglichkeit entschieden, da sie besonders einfach für Menschen verständlich ist. In einem solchen werden Subjekte als ovale, Objekte als quadratische Knoten und ein Prädikat als beschriftete Kante zwischen diesen beiden Knoten dargestellt.

RDF/XML

RDF kann auch in XML aufgeschrieben werden. Diese Art von RDF wird als RDF/XML bezeichnet.

Beispiel für RDF/XML
1. <?xml version="1.0"?>

2. <rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"

3.             xmlns:exterms="http://www.example.org/terms/">

4.   <rdf:Description rdf:about="http://www.example.org/index.html">

5.       <exterms:creation-date>August 16, 1999</exterms:creation-date>

6.   </rdf:Description>

7. </rdf:RDF>

RDFS

RDFS steht für "RDF Schema" und wird ebenfalls vom W3C spezifiziert. RDFS erweitert RDF, dient zur Beschreibung von RDF-Vokabularen und kann vereinfacht als "Typsystem" für RDF bezeichnet werden. Mit RDFS ist es möglich, eine Vererbungsstruktur von Subjekten (sogenannte class Konstrukte) festzulegen und Eigenschaften dieser Klassen festzulegen (sog. properties). Da hier nicht detailliert auf RDFS eingegangen werden kann, hier ein kleines Beispiel mit den zugehörigen Erklärungen.

Beispiel für RDFS
Subjekt Prädikat Objekt
ex:MotorVehicle rdf:type rdfs:Class
ex:PassengerVehicle rdf:type rdfs:Class
ex:Van rdf:type rdfs:Class
ex:MiniVan rdf:type rdfs:Class
ex:PassengerVehicle rdfs:subClassOf ex:MotorVehicle
ex:Van rdfs:subClassOf ex:MotorVehicle
ex:MiniVan rdfs:subClassOf ex:Van
ex:MiniVan rdfs:subClassOf ex:PassengerVehicle

Eine Zeile wie ex:MotorVehicle rdf:type rdfs:Class . gibt an, dass das Subjekt den Typ einer Klasse hat. Für Klassen können mittels rdfs:subClassOf Unterklassen definiert werden. Klassen können wie in objektorientierten Sprachen Eigenschaften haben (rdfs:property). Weiterhin können Subjekt und Objekt einer Eigenschaft eingegrenzt werden (mittels rdfs:domain und rdfs:subject). RDFS bietet einige vordefinierte Properties an, die verwendet werden können.

Zu beachten ist, dass RDFS in RDF definiert ist, also für eine reine RDF Anwendung nur eine Sammlung von Tripeln ist. Damit RDFS das volle Potential entfalten kann, muss die Software die den Konstrukten zugrunde liegende Logik implementieren. Es muss also z.B. dass Wissen von Vererbung (d.h. das Element rdfs:subClassOf) in eine RDFS-Applikation eingebaut werden.

OWL

OWL steht für "Web Ontology Language" und ist eine Erweiterung von RDF und RDFS. Mit OWL wurde eine Möglichkeit geschaffen, Angaben zu machen, die über die Möglichkeiten von diesen beiden hinaus gehen.

RDFS selbst bietet nur grundlegende Möglichkeiten, es fehlen z.B. Dinge wie (Übersetzung von [1]):

  • Mengen-Beschränkungen von Eigenschaften, z.B. dass eine Person nur genau einen Vater hat
  • die Mengenbeschränkung einer Eigenschaft abhängig von der Klasse zu machen, auf die die Eigenschaft angewandt wird.
  • die Möglichkeit, Transitivität anzugeben, d.h. wenn Person A den Vorfahren B hat, B Vorfahre C hat, dann hat A auch C als Vorfahren
  • die Möglichkeit, Properties als eindeutigen Bezeichner für Ausprägungen von Klassen festzulegen
  • die Möglichkeit, anzugeben, dass verschiedene Klassen (mit verschiedenen URIRefs) die gleiche Klasse bezeichnen
  • die Möglichkeit, anzugeben, dass zwei verschiedene Ausprägungen einer Klasse (mit versch. URIRefs) das gleiche Individuum bezeichnen
  • die Möglichkeit, neue Klassen als Kombination (Vereinigung oder Schnittmenge) bestehender Klassen zu definieren oder die Möglichkeit, zwei Klassen als disjunkt zu definieren (d.h. dass nichts eine Ausprägung beider Klassen sein kann).

Alle diese Beschränkungen von RDFS werden von OWL aufgehoben. OWL dient dazu, Ontologien zu verarbeiten und letztlich deren Verarbeitung für Rechnersysteme zu ermöglichen. OWL ist wie auch RDF und RDFS ein Bestandteil der Semantic Web Initiative von Tim Berners-Lee.

Es gibt drei Abstufungen von OWL. Während die Full-Variante als Erweiterung von RDF angesehen werden kann, müssen Lite und DL als zusätzlich eingeschränkte RDF-Erweiterungen gesehen werden.

  • OWL Lite: Die am meisten eingeschränkte OWL-Variante. Sie ist für alle nützlich, die eine Klassifikation mit einfachen Beschränkungen (constraints) benötigen.
  • OWL DL (Description Logics): Hat den gleichen Sprachumfang wie Full, es werden jedoch Nutzungseinschränkungen gegeben. Zum Beispiel dürfen bestimmte Elemente nur in einem definierten Kontext benutzt werden. Für diese Variante wird die Berechen- und Entscheidbarkeit garantiert.
  • OWL Full: Diese Variante hat keinerlei Einschränkungen. Die Berechen- und Entscheidbarkeit ist jedoch nicht mehr garantiert. Die vollständige Unterstützung durch Software ist unwahrscheinlich.

Semantische Wikis

In diesem Abschnitt wird nun gezielt auf den thematischen Schwerpunkt eingegangen. Bis hierhin wurde allgemein auf die Möglichkeit eingegangen, per RDF und den darauf aufbauenden Möglichkeiten Dinge semantisch zu verknüpfen. Die Idee eines semantischen Wikis ist nun, diese Möglichkeit mit einem normalen Wiki zu verheiraten. Auf diese spezielle Art Software soll im Folgenden eingegangen werden.

Problematik gewöhnlicher Wikis

Was sind die Schwachstellen der gewöhnlichen Wikis, die zur Entwicklung der semantischen Ableger geführt haben? Nun, definieren wir zu Beginn erstmal den Begriff "gewöhnliches Wiki". Wir nehmen von hier an, dass ein solches Wiki den Stand von MediaWiki hat, also keinerlei Möglichkeit, von Haus aus semantische Verknüpfungen zu verwenden. Ein traditionelles Wiki bietet alle Informationen, die die Benutzer eingetragen haben, allerdings sind diese nur für die Menschen verständlich. Ein Rechner hat keinerlei Zugang zu den Informationen, um z.B. Verknüpfungen zwischen Artikeln zu verwalten oder um Inhalte für Artikel automatisch unter Benutzung von den Texten zu generieren.

Das Problem ist also kurzgefasst: "Die Informationen sind da, aber für einen Rechner nicht benutzbar."

Vorteile semantischer Wikis

Was sind nun die herausstechenden Vorteile eines semantischen Wikis? Die Vorteile liegen auf der Hand: Das Wikisystem hat nun einen formalen Zugang zu den eingetragenen Informationen und kann mit den verfügbaren Verknüpfungen arbeiten.

Ein Beispiel: Ein semantisches Wiki enthalte eine Sammlung von Seiten über Früchte. Eine Seite beschreibe ganz allgemein eine Frucht, eine weitere einen Apfel im speziellen und eine dritte eine Birne. Nun kann von "Apfel" und "Birne" eine is-a Beziehung zu "Frucht" aufgebaut werden, also eine Vererbung. Bei Betrachten der Apfel-Seite könnte nun automatisch eine generierte Liste von Früchten angezeigt werden, in der die Birne erscheinen würde.

Man sieht an diesem sehr einfachen Beispiel, dass schon triviale Verknüpfungen einen Informationsgewinn mit sich bringen. Zum einen kann Inhalt generiert werden, z.B. Verweise auf verwandte Bereiche. Zum anderen wird die Suche in einem Wiki wesentlich verbessert. Bei einer Suche kann nun nicht mehr nur nach reiner textlichen Übereinstimmung gesucht werden, sondern die Ergebnisse können unter Auswertung der zu Grunde liegenden Semantik geliefert werden.

Ein triviales Beispiel: Eine Suche nach "Mobiltelefon" in einem semantischen Wiki kann in den Ergebnissen "Handy" als Synonym liefern und darauf aufbauend "Nokia", "BenQ", etc. als Handyhersteller, obwohl das Wort "Mobiltelefon" in diesen Texten nicht vorkommen muss.

Nachteile semantischer Wikis

Hier soll auf Nachteile eingegangen werden, die durch die semantische Erweiterung der althergebrachten Wikis entstanden sind.

Einer der Hauptursachen für die Akzeptanz von Wikis ist sicherlich die einfache Benutzbarkeit. Jeder Benutzer kann eine Seite bearbeiten und mehr oder weniger intuitiv den Text formatieren. Durch die Einführung von semantischen Verknüpfungen wird dieser Vorgang jedoch komplizierter und ist nun nicht mehr für jeden verständlich. Wikis wie "Semantic Mediawiki" versuchen, die Änderungen möglichst gering zu halten und so immer noch einfach zu bedienen zu sein. Software wie http://platypuswiki.sourceforge.net/ werden jedoch aller Wahrscheinlichkeit nach nicht für die breite Masse benutzbar sein, da sie den Benutzer mit zu vielen technischen Details belasten. Platypus ist ein auf RDF, RDFS und OWL basierendes Wiki, das den Schwerpunkt auf die Semantik und nicht auf den Inhalt legt.

Ein weiteres Problem, das vor allem für die MediaWiki-Erweiterung aktuell ist, ist der Aspekt der verringerten Performance. Bereits ohne diese Erweiterung müssen die Wikipedia-Server 12000 Anfragen pro Sekunde verarbeiten, daher darf die Erweiterung kaum mehr Leistung brauchen. Bei kleineren Wiki-Systemen ist die Geschwindigkeit sicherlich etwas zu vernachlässigen, bei einem immens großen System wie Wikipedia jedoch sehr wichtig.

Arbeitsweise

Hier wird die allgemeine Arbeitsweise von semantischen Wikis vorgestellt. Da es sehr verschiedene Ansätze der Bedienung und Implementierung gibt, wird hier der Schwerpunkt auf die semantische Erweiterung von Mediawiki gelegt. Im folgenden bezeichnet SMW die semantische Erweiterung zu MediaWiki. Ganz allgemein geht es darum, die Artikel eines Wikis mit semantischen Informationen zu versehen und Möglichkeiten zu bieten, diese auszuwerten. Die Informationen werden meist als RDF abgespeichert. So bietet z.B. SMW einen Export als OWL/RDF. Im Folgenden wird speziell auf die Arbeitsschritte Bearbeiten und Suchen eingegangen.

Bearbeiten

Es gibt wie überall sehr verschiedenen Herangehensweisen der Wikis, um semantische Informationen in den Vorgang des Bearbeitens einzubinden. MediaWiki bindet die semantischen Informationen direkt im Fließtext ein. Dazu wird eine spezielle Form des Wiki-Markups [[ ]] benutzt.

Semantische Abfragen

Der Benutzer sollte natürlich die Möglichkeit haben, eine Abfrage zu stellen, die unter Auswertung der semantischen Informationen ein Ergebnis liefert. SMW bietet zur Zeit nur eine sehr einfache Möglichkeit, Suchanfragen nach semantischen Inhalten zu stellen. Auf einer speziell dazu angelegten Seite wird die Möglichkeit geboten, eine Kombination aus Subjekt, Prädikat und Objekt einzugeben und danach zu suchen. Weiterhin bietet SMW eine Möglichkeit, nach einer Kombination aus Eigenschaft und Eigenschaftswert zu suchen.

Software

Semantic MediaWiki

Hier wird existierende Wiki-Software vorgestellt, die Semantik unterstützt.

Überblick

Es gibt mittlerweile eine ganze Anzahl von semantischen Wikis. Hier werden exemplarisch einige dieser Systeme vorgestellt. Um den Rahmen dieses Vortrags nicht zu sprengen, kann leider nicht in die Tiefe gegangen werden.

Semantic MediaWiki

Semantic MediaWiki ist eine Initiative innerhalb des Wikipedia-Projektes. Ziel ist es, eine MediaWiki-Erweiterung zu entwickeln, mit der semantische Informationen in Artikeln hinterlegt werden können.

SMW wurde im August 2005 nach der WikiMania Konferenz begonnen und hat mittlerweile Version 0.4 erreicht. Unter anderem werden "inline queries", Export als RDF und OWL, semantische Suchen und die Verwaltung von Verknüpfungswerten unterstützt.

Ein wichtiger Punkt in der Entwicklung ist, die Kompatibilität zu den bereits existierenden Inhalten von MediaWikis zu bewahren.

Es wird nun versucht, einen kurzen Ausblick auf die zu erwartende Entwicklung von MediaWiki zu geben. Das SMW-Team plant, ihre Erweiterung in die offizielle MediaWiki-Seite einzuklinken. Falls dies geschieht und die Performance gut genug ist, kann von einer Installation auf Wikipedia ausgegangen werden. Es verbleibt das Problem des semantischen Markups, das für alle Benutzer verständlich sein muss. Da die meisten Benutzer aller Wahrscheinlichkeit nach keinerlei technisches Verständnis haben, wird für diese das Prinzip der Einbettung semantischer Informationen schwer verständlich sein. Meiner Meinung nach wird die semantische Erweiterung ein Gewinn für Wikipedia werden. Die semantischen Verknüpfungen werden jedoch nicht durchgängig in Artikeln benutzt werden können, wahrscheinlich wird der Schwerpunkt bei den technischen Texten liegen.

Praxis: Vorführung eines semantischen Wikis

Hier wird eine Demo-Installation von SMW vorgestellt und an Beispielen erläutert.

Bearbeiten

Hier ist ein Auszug zu einem semantisch aufbereiteten Artikel zu "San Diego":

'''San Diego''' is a [[is a::city]] located in the southwestern corner of [[is located in::California]], the extreme southwestern corner of the contiguous 48 states of the [[is located in::United States]]. It is the county seat of [[is county seat of::San Diego County]]. As of the [[2000]] census, the city had a total population of 1,223,400; as of [[2005]], the California Department of Finance estimated the city to have [[population:=1,305,737]] residents. The city is the second-largest in California and the seventh-largest in the United States and is noted for its [[climate:=temperate|temperate climate]], [[features:=many beaches]], and [[features:=sunny weather]]. The city is named after [[is named after::San Diego de Alcala]].

Man sieht, wie die semantischen Informationen leicht in den Fließtext eingebettet werden können. So bedeutet zum Beispiel [[is a::city]], dass ein Tripel aus dem Subjekt "San Diego", dem Prädikat "is a" und dem Objekt "city" gebildet wird. Es ist also zum Beispiel möglich, eine Suche nach allen Dingen auszuführen, die eine Stadt sind ("suche nach '. is a city'"), oder alle erfassten Städte auszugeben (". . city") oder alle Tripel mit dem Subjekt "San Diego" auszugeben ("San Diego . ."). Der Punkt steht hier jeweils für einen Platzhalter in dem betrachteten Tripel.

Definition von Relationen

In SMW werden Relationen als simpler Text gegeben, d.h. die Relationen werden in Textform eingegeben. Um jedoch eine Auswertung zu ermöglichen, muss die Semantik dieser Wörter für den Rechner zugänglich gemacht werden. Zu diesem Zweck wird für jede Relation eine besondere Wiki-Seite angelegt, auf der die Semantik erfasst werden kann.

Hier ein Beispiel der Definition der Relation coded in:


the [[rdfs:range::Programming language]] a [[rdfs:domain::software]] was written in.

[[Category:Relation]]

{{ask}}

Es zeigt, dass das Prinzip der in den Inhalt eingebetteten Semantik auch hier beibehalten wurde. Mittels der RDFS-Angabe rdfs::domain::software wird der Gültigkeitsbereich der mit diesem Prädikat verwendeten Subjekte auf Software eingeschränkt. Der des Objekts wird auf alle Programmiersprachen festgelegt.

[[Category:Relation]] ordnet diese Seite in die Kategorie "Relation" ein.

{{ask}} generiert eine Linkliste von Suchanfragen, für die oben erfolgte Definition verfügbar sind.

SemMW-Relation.jpg

Suchen

Beispiel einer Suche nach dem Objekt "Germany"

Dieses Bild zeigt das Ergebnis einer Suche im SMW nach dem Objekt "Germany". Wie man sehen kann, kann für die Suche eine Kombination aus Subjekt, Prädikat und Objekt gegeben werden. Bislang wird nur die Übereinstimmung mit der eingegebenen Kombination ausgewertet. Transitivität und ähnliches wird für die Suche nicht ausgewertet. Eine Suche nach "Deutschland" würde also nicht die Erde als Ergebnis liefern, falls die Relation Deutschland liegt in Europa" und "Europa liegt in Erde" gegeben sind. Das heißt, dass die Transitivität von "liegt in" nicht ausgewertet wird.

Weitere Anwendungen

Generierter Inhalt am Beispiel San Diego

Als weitere Anwendung von SMW ist zum Beispiel die automatische Generierung von Inhalt möglich. In diesem Beispiel ist zu erkennen, dass die Liste der möglichen Suchen und die Liste der Eigenschaften von SMW automatisch in die Seite eingefügt wurden. Mit etwas Fantasie sind natürlich noch weitere Möglichkeiten zu finden. Als Beispiel diene die Seite "Apfel", die mit "Frucht" über die Relation "Apfel is a Frucht" verknüpft ist. Für die Seite Apfel könnten zum Beispiel zusätzlich die Eigenschaften von Frucht angezeigt werden, da ja eine Instanzrelation vorliegt.

Quellenangabe / Literatur

Events

Demos