Die Contextual Browsing Language oder Was Content Management vom Semantic Web lernen kann
Ziel des Semantischen Webs ist es, Webdaten mit menschlicher Hilfe durch Bedeutungsinformationen anzureichern, um so eine bessere Verarbeitung und Nutzung der Daten für Mensch und Maschine zu erreichen. Dieser Artikel erläutert, was das klassische Content Management von der Philosophie des Semantic Web lernen kann und stellt die XML-basierte Markup-Sprache CBL (Contextual Browsing Language) vor.
Die Idee des Semantic Web
Die Idee des Semantic Web [1] geht auf Tim Berners-Lee zurück. Der ehemalige Chef der Entwicklergruppe des Hyperlink-Konzepts ist mittlerweile Vorsitzender des W3-Konsortiums (W3C), das unter anderem für die Standardisierung von HTML, XML und SOAP verantwortlich ist. Von Berners-Lee stammt die folgende Definition: The Semantic Web is an extension of the current web in which information is given well-defined meaning, better enabling computers and people to work in cooperation.
Das Schlüsselwort des Semantic Web ist Bedeutung (meaning). Abgeleitet von der Bedeutungslehre (Semantik) ist es Ziel dieser Überlegungen, Daten und Informationen um Metaeigenschaften zu ergänzen, die eine grenzenlose und flexible Kommunikation zwischen Maschinen und Menschen ermöglicht. Das Semantische Web will und wird nicht das bekannte (und auch bewährte) HTML-basierte Web ablösen. Auch sollen die Anwender nicht gezwungen werden, statt Inhalten formale Ausdrücke zu erstellen oder zu rezipieren. Das Paradigma des Semantic Web lässt sich somit eher als eine optionale, partielle Evolution verstehen und nicht als eine Revolution. Der Übergang zu den Techniken des Semantic Web ist nicht zwingend - vielmehr fußt das Semantic Web auf dem bisherigen sichtbaren Web (von Menschen für Menschen) und erweitert dieses zu einem Web von Menschen für Menschen und Maschinen.
Das Semantic Web stellt genau genommen keine Spezifikation dar, sondern vielmehr eine Philosophie. Seitens des W3C existiert eine Festlegung, welche Techniken das Semantic Web konstituieren. Zur Erreichung des gesteckten Ziels existieren mittlerweile eine Vielzahl von Techniken. Kerntechniken wie URI, XML und RDF sind unabhängig von den Bestrebungen des Semantic Webs entwickelt worden und häufig sogar älter als diese.
Eine Web Service-basierte Kommunikation erlaubt den Austausch von Informationen. Dieser Informationsaustausch würde jedoch scheitern, wenn z.B. XML-Tags vom Wesen her identische Informationen enthielten, jedoch unterschiedliche Namen trügen, z.B. <blz>10010010</blz> und <bankleitzahl>10010010</bankleitzahl>. Um diese Bedeutungsschwierigkeiten zu umgehen, führt das Semantic Web eine Metaebene ein, auf der die Bedeutung der Informationen beschrieben wird. Hierzu gibt es verschiedene Modelle. Taxonomien oder auch Klassifizierungen sind ein einfacher Weg, um Bedeutungsschwierigkeiten auszuräumen. Hierbei wird jede Informationseinheit klassifiziert und bildet einen Knoten, der entweder höher oder niedriger klassifiziert sein kann. Taxonomien sind daher strukturell darauf beschränkt, normale Hierarchien abzubilden. Komplexer ist in diesem Szenario schon ein Thesaurus, der über die hierarchische Abbildung hinaus auch noch Semantiken wie Synonyme und Homonyme abbilden kann.
Diese Ansätze genügen jedoch nicht, wenn es um die Abbildung logischer Theorien geht. Eine solche Theorie besteht aus Axiomen, also feststehenden und als wahr geltenden Annahmen und Regeln, die bestimmte Schlüsse zulassen. Die Beziehungen zwischen solchen Informationseinheiten sind naturgemäß komplex und können im Bereich des Semantic Web durch Ontologien abgebildet werden. Im Gegensatz zur philosophischen Disziplin der Ontologie, also der Lehre vom Sein, geht es im technischen Bereich weitaus handfester zu. Hier geht es um ein Vokabular und die dazugehörigen Beziehungen, Regeln und Konzepte, um einen definierten Wissensbereich näher zu beschreiben. So lernt die eine Maschine zu verstehen, was eine andere Maschine meint. Völlig neue Suchmaschinen würden damit möglich werden, Softwaresysteme, die in der Lage sind, unwichtige Informationen von wichtigen zu trennen.
Die Grundidee von Web Services ist Kommunikation als Basis von Kooperation und Integration über Applikations- und Organisationsgrenzen hinweg. Bei Web Services geht es um entfernte Methodenaufrufe (Remote Procedure Calls) und höherwertige Kommunikationssemantiken durch Sekundärspezifikationen zu Aspekten wie Sicherheit, Transaktionen und Routing. Ein entsprechendes Web Service-Szenario sieht XML zur Inhaltsdarstellung, XML Schema zur Inhaltsbeschreibung, SOAP zur Inhaltsverpackung und -übertragung, WSDL zur technischen Schnittstellenbeschreibung und UDDI zur Ablage der Schnittstellen vor. SOAP, WSDL und UDDI sind in diesem Sinne Semantic Web-Techniken, da sie mit Inhalten umgehen, die durch Bedeutungsinformationen ergänzt wurden.
Erste Schritte - RDF
Noch ist dies alles graue Theorie. Das W3C geht mit RDF (Resource Description Framework) [2] einen ersten Schritt in Richtung Semantic Web. Diese Spezifikation ist mittlerweile etwas in die Jahre gekommen, wird aber gegenwärtig wieder bearbeitet. Mit RDF kann man über die Vergabe von Eigenschaften Ressourcen beschreiben, z.B. jede über einen URL zugängliche Website. Zur Definition von Eigenschaften dient ein RDF-Schema. Aus Ressource, Eigenschaft und einem Literal wird in RDF ein Statement, also eine Aussage. Diese dreiteilige Struktur wird als Triple bezeichnet. Zum besseren Verständnis führt die Spezifikation Begriffe<font> </font>ein, die aus der Grammatik bekannt sind: Die Ressource bildet das Subjekt, die Eigenschaft das Prädikat und das Literal das Objekt. Dem Prädikat kommt hierbei besondere Bedeutung zu, da es die Beziehung zwischen Subjekt und Objekt näher beschreibt.
Gängige Content Management-Systeme leisten bereits eine Grundanforderung des Semantischen Webs, nämlich die Vergabe von Metaeigenschaften. Leider wird dieser Mehrwert zurzeit nur dafür genutzt, um Suchanfragen im System effizienter zu gestalten oder automatisch Meta-Tags zu erzeugen. Im Gegensatz zum gewaltigen Wissensraum Internet sind einzelne Websites in der Regel noch überschaubar. So wird es möglich, der Vergabe von zusätzlichen Metainformationen im Produktionsprozess etwas Zeit einzuräumen - wenn es sich lohnt.
Die vorherrschende Sichtweise auf eine Site ist in den meisten Content Management-Systemen der Baum. Diese Metapher beschreibt den Blick auf eine Site nicht nur in visueller, sondern auch in struktureller Hinsicht: Ordner enthalten Unterseiten, die wiederum Ordner enthalten können. Durch diese Eltern-Kind-Relation stehen die Seiten einer Webpräsenz in einem direkten Verhältnis zueinander, ein interessengesteuertes Erlebnis der Website wird somit ausgeschlossen. Auch eine zentrale Verwaltung von Schlüsselwörtern greift hier zu kurz, eine Gewichtung der Inhalte je nach Interessenlage findet nur in begrenztem Maße statt. Genau hier setzt die CBL ein.
Contextual Browsing Language
Während z. B<font>. </font>klassische Sitemaps lediglich die Beziehungen zwischen Daten beschreiben, geht CBL einen Schritt weiter und definiert nicht nur die Verknüpfung, sondern auch den Grad der Verknüpfung. CBL schafft die Grundlage für Semantisches Content Management - ein Inhaltsangebot angepasst an Interesse und Verhalten des Nutzers. CBL beschreibt die strukturelle Verschränkung von Daten und bildet die Grundlage für spezialisierte Inhaltsangebote an den Nutzer.
Die XML-basierte Markup-Sprache CBL basiert auf den Überlegungen einer Abschlussarbeit zum Thema Automatisches Erzählen am Massachusetts Institute of Technology (M.I.T.) [3]. Michael Murtaugh beschreibt darin ein Erzählsystem, das die visuelle Darstellung einer komplexen Erzählung nach den Interessen des Rezipienten formt. Ein früher Ansatz für eine Visualisierung von Datenverbindungen war der HotSauce-Browser von Apple, zu sehen in Abbildung 1. Einen bereits weit fortgeschrittenen Ansatz stellt der Visual Thesaurus [4] von PlumbDesign dar (Abbildung 2). Murtaugh geht jedoch einen Schritt weiter und beschreibt die Mechanismen, die aus einer simplen Abfolge von Inhalten eine evolving story machen.

Abb. 1: Apples HotSauce-Browser

Abb. 2: Visual Thesaurus von PlumbDesign
Die Grundlage für kontextuelles Browsen ist ein Interface oder auch die Page Rendering-Engine eines CMS, das neben dem aktuellen Objekt auch jene Verknüpfungen zeigt, die mit dem Objekt in einer inhaltlichen Beziehung stehen.
CBL beschreibt prinzipiell die strukturellen Beziehungen zwischen Daten und gibt darüber hinaus noch einige Tags an die Hand, um die Visualisierung der Datensätze zu steuern. Die Beschreibung von Datenbeziehungen ermöglicht es, Daten kontextspezifisch aufzubereiten und eine an das Nutzerverhalten angepasste Ansicht auf die Elemente einer Website zu ermöglichen. Listing 1 zeigt ein einfaches CBL-Dokument.
Listing 1 <?xml version="1.0" encoding="ISO-8859-1"?>
<cbl>
<head>
<title>Einfaches CBL-Demo</title>
<!-- Konfiguration der Story-Engine -->
<engine>
<attrib name="synchronize-display" value="true"/>
<attrib name="mark-visited-items" value="true"/>
<attrib name="forget-visited-items" value="true"/>
<attrib name="reduce-prominence" value="true"/>
<attrib name="description-feedback" value="true"/>
<attrib name="progression-of-detail" value="true"/>
<attrib name="trail-rating" value="true"/>
<attrib name="topic-rating" value="true"/>
<attrib name="keyword-rating" value="false"/>
</engine>
<layout padding="2">
<region id="display01" rect="0,100,400,0" display="Timeline">
<map id="map_display01" src="img/map.jpg"/>
<!-- Konfiguration des Timeline-Skins -->
<attrib name="show-progressbar" value="true"/>
<attrib name="mark-visited" value="true"/>
<attrib name="textarea-width" value="100"/>
<attrib name="textarea-height" value="26"/>
<attrib name="textarea-padding" value="2"/>
</region>
<region id="display02" rect="0,300,200,100" display="Plex"/>
<region id="display03" rect="200,300,400,100" display="ConText"/>
</layout>
<trail sequence="Salzburg Wien"/>
<script language="JavaScript1.5" type="text/javascript">
function setRegionAttribute( region_id, attribute, val )
{
var ref = document.getElementById( region_id );
if ( ref )
{
ref.setAttribute( attribute, val );
}
}
</script>
</head>
<body>
<!-- Keywords -->
<keyword id="Salzburg" category="location" rating="90" oninvoke="setRegionAttribute()">
<area shape="rect" coords="0,10,40,0" regions="display01"/>
<img src="img/salzburg.gif" width="100" height="100" regions="display01"/>
</keyword>
<keyword id="Wien" category="location" rating="70">
<area shape="rect" coords="0,110,140,0" regions="display01"/>
<img src="img/wien.gif" width="100" height="100" regions="display01"/>
</keyword>
<keyword id="Familie" category="location" rating="50">
<area shape="rect" coords="0,220,260,0" regions="display01"/>
<img src="img/familie.gif" width="100" height="100" regions="display01"/>
</keyword>
<keyword id="Musik" category="location" rating="80">
<area shape="rect" coords="0,420,430,0" regions="display01"/>
<img src="img/instrumente.gif" width="100" height="100" regions="display01"/>
</keyword>
<!-- Nodes -->
<item id="vater" jumps="constanze mutter" media="video" rating="100" href="htm/vater.htm" target="content" first="true">
<label type="headline">Mozart und sein Vater</label>
<label type="abstract">Mozart und sein Vater ...</label>
<img src="img/vater01.gif" width="100" height="100" regions="display01"/>
<img src="img/vater02.gif" width="110" height="160" regions="display02"/>
<img src="img/vater03.gif" width="140" height="140" regions="display03"/>
<area shape="rect" coords="0,10,40,0" regions="display01"/>
<area shape="circle" coords="100,120,60" regions="display02"/>
<narration>
<topic keywords="Wien Salzburg" match="90"/>
</narration>
</item>
<item id="constanze" parents="vater" jumps="vater mutter" media="text" rating="100" href="htm/constanze.htm" target="content">
<label type="headline">Mozart und Constanze</label>
<label type="abstract">Mozart und Constanze ...</label>
<img src="img/constanze01.gif" width="100" height="100" regions="display02 display03"/>
<img src="img/constanze02.gif" width="110" height="160" onmouseover="setRegionAttribute('display01','display','HyperbolicView')"/>
<narration>
<topic keywords="Wien" match="80"/>
<topic keywords="Familie" match="20"/>
</narration>
</item>
<item id="mutter" parents="vater" jumps="vater constanze" media="text" rating="100" href="htm/mutter.htm" target="content">
<canvas regions="display02">
<p>
<i><font face="2">Hier ist</font> Raum für<br/>
den Artikel über <a href="mozart.htm">Mozart</a>.</i>
</p>
<p>
<a href="mozart.htm"><img src="img/mutter01.gif" width="100" height="100"/></a>
</p>
</canvas>
<label type="headline">Mozart und seine Mutter</label>
<label type="abstract">Mozart and his mother ...</label>
<img src="img/mutter01.gif" width="100" height="100"/>
<narration>
<topic keywords="Wien" match="100"/>
<topic keywords="Familie" match="80"/>
<topic keywords="Musik" match="20"/>
</narration>
</item>
</body>
</cbl>
Items stellen in einem CBL-Dokument die kleinste sinntragende Einheit dar - sie entsprechen einem Text, einem Bild oder auch einem URL. Items können ihre Inhalte auch inline tragen, z.B. innerhalb des canvas-Elements, das der CBL-Browser beim Aktivieren des Items rendern muss. Sequences bilden eine festgefügte Folge von Items, die nacheinander angezeigt werden. Die Narrative Engine, die die Abfolge der Inhaltselemente aufgrund der Nutzerinteraktionen errechnet, hat hier auf die Abfolge der Elemente keine Auswirkung; die Definition einer Sequenz stellt die Integrität der Abfolge sicher. CBL funktioniert nach dem so genannten Pickup-Prinzip: Ein CBL-Browser oder eine Rendering-Engine pickt sich aus den Item-Elementen jene Informationen heraus, die zur visuellen Aufbereitung der Daten benötigt werden, z.B. den Text eines Labels oder eine Bildinformation.
Anpassung an das Nutzerverhalten
Murtaugh beschreibt in seinem Beitrag ein aus Schlüsselwörtern (Keywords) bestehendes System dynamischer Verbindungen, welches sich, Interessen und Wissensstand des jeweiligen Lesers folgend, zu einem originellen Textorganismus entwickelt. Um eine in Abhängigkeit vom Nutzerverhalten angelegte Darstellung der Informationen zu ermöglichen, gibt CBL zwei Rating-Mechanismen vor. Erstens über das rating-Attribut eines Items: ein simpler prozentualer Zahlenwert, der bestimmte Items gegenüber anderen prominenter erscheinen lässt. Ob dieses Item in der Darstellung dann größer, näher oder heller erscheint, liegt an der Umsetzung durch den CBL-Browser. Alle thematisch verwandten Elemente sind mit dem aktuellen Element über das jumps-Attribut verknüpft. Zweitens über das narration/topic-Element. Hier melden Items über einen Rating-Wert ihre Nähe zu einem bestimmten Keyword an, also zu einer abstrakten Thematik wie Musik. Durch diesen Umweg - die Definition von Interessen tritt an die Stelle von konkreten Verknüpfungen - wird eine dramaturgische Aufarbeitung des Datenbestandes im Sinne Murtaughs möglich. Die Narrative Engine
erhält so durch die Nutzeraktivität Feedback, das sie nutzen kann, um dem Anwender im weiteren Verlauf mehr Elemente anzubieten, die seinem Interesse entsprechen. So wird für den strukturellen Aufbau einer Website möglich, was Michael Murtaugh als Evolving Story
bezeichnet: dem Nutzer werden Texte, Links, Bilder angezeigt, die auf seine Interessen abgestimmt sind.
CBL bietet für Content Management-Systeme die Möglichkeit, ein an das Nutzerverhalten angepasstes Besuchserlebnis einer Website zu schaffen, das weit über die Möglichkeiten hinausgeht, die die traditionelle Verwaltung von Nutzerprofilen ermöglicht. Ein entsprechendes Szenario sieht vor, dass die von einem CMS verwalteten Inhalte mit spezifischen Metaeigenschaften versehen würden, die es ermöglichten, eine auf den Nutzer abgestimmte Seite zu errechnen<font>.</font> Eine solche Evolving Site stellte ein mächtiges Instrumentarium zur Kundenbindung dar.
Ausblick
Über die Verwendbarkeit im Rahmen des Content Management hinaus stellt CBL die Grundlage für das von Michael Murtaugh propagierte System eines Automatist Storytelling System dar. Interaktives Erzählen erprobt das Aufbrechen einer statischen, stets unveränderlich präsentierten Geschichte zugunsten ihrer prinzipiellen Offenheit, die erst durch die Mitwirkung des Rezipienten in eine feste Gestalt überführt wird. Sie finden weitere Informationen zu diesem Aspekt auf der Webseite des Projekts.
Der Autor sucht nach Open Source-Enthusiasten, die entsprechende Flash- und Java-Browser für CBL implementieren möchten. Weitere Informationen gibt es auf der Projekt-Website [5].
Markus Nix (mnix@docuverse.de) ist Web Application Developer und Consultant. Gemeinsam mit bundesweit ansässigen Kulturinstitutionen entwickelt er praktische Lösungen für das Internet. Neben seinen kommerziellen Projekten als Gründer und Geschäftsführer der Medienagentur Docuverse veröffentlicht er regelmäßig Fachartikel in IT-Zeitschriften und arbeitet gegenwärtig an seiner Promotionsschrift im Bereich Content Management.Links und Literatur