Anzeige
Anzeige
UX & Design
Artikel merken

Neue Dienste ebnen den Weg vom Dokumenten- zum Daten-Web: Semantische Webapplikationen entwickeln

Viele Informationen im Web können derzeit nur unzureichend gefunden und verknüpft werden. Sucht man etwa nach großräumigen Altbauwohnungen in Leipzig in der Nähe eines Thailändischen Restaurants, wird man bei heutigen Suchmaschinen nicht fündig. Und das, obwohl es sowohl umfangreiche Immobilien- als auch Restaurantdatenbanken im Netz gibt. Hier setzt das im Moment entstehende Daten-Web an. Das Ziel ist es, bereits existierende und neue Datenbanken mittels semantischer Technologien intelligent verknüpfbar und besser durchsuchbar zu machen. Wir zeigen, wie es geht und welche Dienste Entwicklern dabei helfen.

11 Min. Lesezeit
Anzeige
Anzeige

Vor circa zehn Jahren entwickelte eine Gruppe von Wissenschaftlern um den Web-Erfinder Tim Berners-Lee die Vision des Semantic Web, in dem Daten, Informationen und Wissen nicht nur für Menschen lesbar, sondern auch durch Software-Agenten interpretierbar, abfragbar und intelligent verknüpfbar sind. In der Folgezeit wurden unter Führung des World-Wide-Web-Konsortiums (W3C) eine Reihe von Basis-Standards und Technologien für das semantische Web entwickelt. Zu diesen Technologien gehören unter anderem:

  • Universal Resource Identifier (URIs), die eine weltweit eindeutige Identifikation von Ressourcen erlauben
  • das Resource Description Framework (RDF), das die Beschreibung von Ressourcen mittels Tripeln ermöglicht
  • die Schema- und Ontologie-Sprachen RDF-Schema (RDF-S) und Web Ontology Language (OWL), in denen Vokabulare, vordefinierte Informationsstrukturen und logische Axiome repräsentiert werden können
  • die Anfragesprache SPARQL, mit der, in Analogie zu SQL für relationale Datenbanken, Wissensbasen und Tripel-Stores angefragt werden können
Anzeige
Anzeige

Mittels URIs können sowohl reale Entitäten (z. B. „Brandenburger Tor“) als auch abstrakte Konzepte (z. B. „Bauwerk“) weltweit eindeutig identifiziert werden. Eine URI ist dabei prinzipiell ähnlich einer Webadresse (URL) aufgebaut, es wird allerdings nicht zwingend verlangt, dass es tatsächlich eine entsprechende Webseite gibt. Man kann sowohl bestehende URIs wiederverwenden, zum Beispiel http://de.wikipedia.org/wiki/Brandenburger_Tor, als auch eigene neu definieren, etwa http://aksw.org/SoerenAuer.

RDF – Lingua Franca des Daten-Web

Mit dem RDF-Standard des W3C wurde festgelegt, wie Daten, Informationen und Wissen im Web maschineninterpretierbar kodiert werden können. Dabei werden in RDF-Dokumenten so genannte Tripel bestehend aus Subjekt, Prädikat und Objekt gespeichert. URIs kommen dabei als Subjekt, Prädikat und Objekt zum Einsatz. Ein Tripel (oft auch Statement oder Aussage genannt) stellt dann genau einen Fakt dar, zum Beispiel:

Anzeige
Anzeige
Ein einfaches Tripel (Aussage)
dbpedia:Brandenburger_Tor	rdf:type	dbpedia:Bauwerk .

Listing 1

Der Übersichtlichkeit halber haben wir hier die kompletten Namensräume vor Subjekt, Prädikat und Objekt durch die jeweiligen Präfixe abgekürzt. Die Semantik (oder auch Bedeutung) eines Tripels ist folgende: Die Entität, die durch das Subjekt referenziert wird (Brandenburger Tor), hat die Eigenschaft, die durch das Prädikat referenziert wird (Typ), mit dem Wert, der durch das Objekt referenziert wird (Bauwerk). Unser Beispiel-Tripel ist gleichbedeutend mit der natürlichsprachlichen Aussage „Das Brandenburger Tor ist ein Bauwerk“. Objekte in RDF-Tripeln können nicht nur aus URIs, sondern auch aus Literalen bestehen. Auf diese Weise kann man Entitäten mit Daten verknüpfen. Die Aussage, dass das Brandenburger Tor 1791 gebaut wurde, könnte man folgendermaßen als RDF-Tripel darstellen:

Anzeige
Anzeige
Ein Tripel mit Datentyp
dbpedia:Brandenburger_Tor	dbpedia:wasBuilt	"1791"^^xsd:gYear .

Listing 2

Ein RDF-Dokument (oder auch eine einfache Wissensbasis) ist nun eine Zusammenfassung mehrerer RDF-Tripel, die in einem der RDF-Serialisierungsformate abgespeichert sind. Die populärsten RDF-Dokumentenformate sind:

  • RDF/XML: eine XML-Serialisierung von RDF
  • NTriples: ein einfaches Textformat mit jeweils einer Zeile pro Tripel und Leerzeichen als Trennzeichen zwischen Subjekt, Prädikat und Objekt (wie in unseren Beispielen)

Mit den vom W3C standardisierten Schema- und Ontologie-Sprachen RDF-S und OWL wurden eine Reihe von URIs vordefiniert, mit denen umfangreichere RDF-Wissensbasen besser strukturiert werden können. Sowohl RDF-S als auch OWL bauen dabei strikt auf dem RDF-Tripel-Datenmodell auf. Mit RDF-S lassen sich so zum Beispiel abstrakte Klassenkonzepte definieren und in Vererbungshierarchien anordnen. Die Ontologie-Sprache OWL erweitert RDF-S wiederum um Möglichkeiten zur Repräsentation von Klassenkonstruktoren, Restriktionen, logischen Axiomen und Charakterisierungen von Eigenschaften.

Anzeige
Anzeige

Um für oft benötigte Entitäten und Konzepte vordefinierte URIs bereitzustellen und damit unnötige Dopplungen und Synonyme zu vermeiden, werden RDF-Vokabulare im Netz bereitgehalten: Das Dublin Core Vokabular (DC) stellt so beispielsweise zentrale Klassen und Eigenschaften für Metadaten zu Dokumenten bereit, zum Beispiel Autor, Erstellungsdatum oder Schlüsselworte. Mit dem Friend-of-a-Friend-Vokabular (FOAF) kann man sich und seine Freunde in RDF beschreiben. Viele hunderttausende Internetnutzer haben dies bereits gemacht und auf diese Weise ein dezentrales soziales Netzwerk geschaffen. Mit dem Vokabular für „Semantically Interlinked Online Communities“ (SIOC) können Inhalte von Wikis, Blogs, Foren etc. mit RDF annotiert und miteinander verknüpft werden. Die Publikation von RDF-Tripeln im Web kann auf verschiedene Weise passieren.

LinkedData [1] : Dabei sind die im RDF verwendeten URIs dereferenzierbar. Das bedeutet: Wenn eine RDF-Ressource als URL von einem Web-Browser oder HTTP-Client abgerufen wird, liefert der LinkedData-Endpunkt eine RDF-Beschreibung der entsprechenden Ressource, also alle bekannten Tripel mit der Ressource als Subjekt. Alternativ zur RDF-Beschreibung können per Content-Negotiation (abhängig vom HTTP-Accept-Header) auch andere Beschreibungsformate (z. B. HTML) zurückgegeben werden.

RDFa [2] : Das ist eine vom W3C standardisierte Menge von Erweiterungen zu XHTML, welche die Meta- und Link-Attribute von XHTML so generalisiert, dass sie auf beliebige XHTML-Elemente anwendbar sind. Somit können RDF-Tripel direkt in XHTML eingebettet werden.

Anzeige
Anzeige

SPARQL-Endpunkte: Das sind Web Services, die Triple-Stores mit Hilfe eines standardisierten Protokolls für die Abfrage im Web erweitern und somit eine Trennung zwischen semantischen Webapplikationen und Tripel-Stores ermöglichen.

Um größere Mengen von RDF-Tripeln zu verarbeiten, haben sich, in Analogie zu relationalen Datenbanken, Tripel-Stores etabliert. Grundsätzlich lassen sich zwei Klassen von Tripel-Stores unterscheiden: datenbankbasierte und native Tripel-Stores.

Datenbankbasierte Tripel-Stores nutzen eine relationale Datenbank als Basis und definieren ein relationales Datenbankschema für die Speicherung von RDF-Tripeln. Native Tripel-Stores wurden ausschließlich zum Speichern und Abfragen von RDF-Tripeln entwickelt. Beide Varianten stellen jedoch Funktionen zum Parsen und Serialisieren von RDF-Dateien und Abfragesprachen für die Verarbeitung von Anfragen an die Wissensbasis bereit. Eine Auswahl aktuell verfügbarer Tripel-Stores und Semantic-Web-Frameworks:

Anzeige
Anzeige
Name Typ Technologie
Virtuoso DB-basierter Tripel-Store C/C++ (Server)
Jena Framework mit DB-basiertem Tripel-Store Java (Bibliothek)
Sesame/OWLIM DB-basiert/Nativer Triple-Store Java (Server)
Redland Nativer Tripel-Store C (Bibliothek)
OntoWiki Framework PHP
ARC Framework PHP

Im Vergleich zu relationalen Datenbanken ist das RDF-Tripel-Datenmodell flexibler: Wenn neue Eigenschaften gespeichert werden sollen, muss die physikalische Organisation der Daten nicht neu arrangiert werden – anders als etwa beim Hinzufügen von Spalten zu einer Datenbanktabelle. Durch die Verwendung von weltweit eindeutigen URIs ergeben sich auch weniger Probleme beim Zusammenführen verschiedener Datenbestände.

SPARQL – Anfragesprache für das Daten-Web

Als Abfragesprache für RDF-Wissensbasen hat sich der W3C-Standard SPARQL [3] etabliert. SPARQL ähnelt dabei SQL, ist allerdings für das RDF-Tripel-Datenmodell optimiert. Die folgende SPARQL-Anfrage selektiert aus einer Wissensbasis Bauwerke und ihr Baujahr:

SPARQL-Beispiel
PREFIX  dbpedia: <http://DBpedia.org/resource/> 
PREFIX  xsd: <http://www.w3.org/2001/XMLSchema#> 
SELECT   ?bauwerk   ?jahr 
WHERE { 
  ?bauwerk	rdf:type		     dbpedia:Bauwerk . 
  ?bauwerk	dbpedia:wasBuilt	?jahr . 
} 
FILTER { ?jahr < “1900“^^xsd:gYear }

Listing 3

Mit der PREFIX-Klausel (Zeile 1-2) werden der Übersicht halber Abkürzungen für oft verwendete Namensräume vereinbart. Die SELECT-Klausel (Zeile 3) legt fest, welche Informationen nach Verarbeitung der Anfrage zurückgegeben werden sollen. Die WHERE-Klausel (Zeilen 4-7) definiert einen so genannten Graph-Pattern, auf den die Ergebnisse passen müssen. In unserem Beispiel besteht der Graph-Pattern aus zwei Tripel-Pattern (Zeile 5-6).

Anzeige
Anzeige

Ein Tripel-Pattern ist im Prinzip ein RDF-Tripel, bei dem an einer oder mehreren der drei Positionen (Subjekt, Prädikat, Objekt) Variablen auftreten können. Der erste Tripel-Pattern in unserem Beispiel wählt Ressourcen vom Typ „dbpedia:Bauwerk“ aus. Der zweite Tripel-Pattern wählt zu diesen Ressourcen die Eigenschaft „dbpedia:wasBuilt“ aus. Mit der optionalen FILTER-Klausel (in Zeile 8) wird das Anfrageergebnis gefiltert, sodass nur Ressourcen (in unserem Beispiel Bauwerke) zurückgegeben werden, deren Baujahr vor 1900 liegt.

Henne oder Ei?

Leider hat sich gezeigt, dass die reine Verfügbarkeit der beschriebenen Technologien nicht ausreicht, um das Web in ein semantisches Web zu verwandeln. Ein zentrales Problem ist die Bereitstellung einer kritischen Masse an im Web verfügbaren, semantisch ausgezeichneten Daten, damit Suchmaschinen diese berücksichtigen. Wenn Suchmaschinen umgekehrt solche semantischen Auszeichnungen verstehen und unterstützen, werden auch zunehmend Webseiten mit semantischen Annotationen versehen werden. Im Folgenden stellen wir mit DBpedia und Triplify zwei komplementäre Ansätze vor, die mit dem Ziel an den Start gehen, dieses Henne-Ei-Problem zu lösen.

DBpedia: Semantik aus der Wikipedia

Das Ziel des DBpedia-Projekts [4] ist es, die größte im Web verfügbare Informationsquelle, Wikipedia, als eine semantische Wissensbasis zur Verfügung zu stellen. Dazu wurden eine Reihe von Wissensextraktoren entwickelt, die strukturierte Daten aus verschiedenen Elementen von Wikipedia-Artikeln extrahieren und als RDF-Wissensbasis verfügbar machen. Quellen für Semantik in Wikipedia sind vor allem die vielen Artikeln zugeordneten Faktboxen, das Kategoriensystem oder auch die Verweise zwischen Artikeln (z. B. in verschiedenen Sprachen).

Anzeige
Anzeige

Mittels der DBpedia-Extraktion ist es gelungen, weit über 100 Millionen Fakten aus Wikipedia zu extrahieren und als RDF-Wissensbasen zum Download bereitzustellen. Die Wissensbasen werden auch in Form eines öffentlich zugänglichen SPARQL-Endpunkts verfügbar gemacht, mit dem man eigene Anfragen stellen kann. Durch die Vielzahl der von Wikipedia abgedeckten Gebiete ist die DBpedia-Wissensbasis überaus reichhaltig und ermöglicht erstaunliche Anfragen. So können beispielsweise alle Fußballspieler herausgesucht werden, die auf ihrem Trikot die Nummer 10 tragen und in einem Club spielen, in dessen Stadion mehr als 10.000 Zuschauer passen. Durch die Größe, die Vielzahl der repräsentierten Gebiete und den Gemeinschaftskonsens, den die aus Wikipedia abgeleitete Wissensbasis widerspiegelt, hat sich DBpedia inzwischen zu einem Kristallisationskern des zunehmend größer werdenden Daten-Web entwickelt.

Triplify: Semantifizierung von Webapplikationen

Während DBpedia sich der Semantifizierung einer der größten Websites im Internet widmet, geht es bei dem Projekt Triplify [5] um den Long Tail der Millionen kleinen Websites, Blogs, Wikis und Online-Shops. Die meisten davon nutzen Webapplikationen, die bereits relationale Datenbanken und damit stark strukturierte Informationsquellen nutzen. Triplify ist ein sehr kleines Plugin für Webapplikationen, mit dem die bereits in den relationalen Datenbanken vorliegenden Daten mit minimalem Aufwand in Form von RDF und Linked Data im semantischen Daten-Web publiziert werden können.

Um den Arbeitsaufwand für die Entwickler von Webapplikationen zu minimieren, kümmert sich das Triplify-Skript um das Konvertieren der relationalen Datenbankinhalte in RDF. Einzig notwendig ist die Erstellung einer Triplify-Konfiguration für das jeweilige relationale Datenbankschema. Eine solche Konfiguration besteht im Wesentlichen aus einigen SQL-Anfragen, die die zu konvertierenden Daten auswählen. Die Erstellung einer solchen Konfiguration kann von einem Webentwickler in wenigen Stunden erledigt und dann bei jeder Installation der entsprechenden Webapplikation wiederverwendet werden.

Anzeige
Anzeige

OpenCalais: Semantische Textanalyse

Zusätzlich zu in Datenbanken gespeicherten Informationen existieren in Blogs, Wikis oder klassischen Content Management Systemen oft textuelle Informationen, zum Beispiel in Form von Artikeln, Kommentaren oder Newsmeldungen. Mit OpenCalais [6] hat Thomson Reuters jetzt einen Webdienst entwickelt, der es ermöglicht, diese Texte zu analysieren, zu kategorisieren und mit anderen relevanten Informationen im Web zu verknüpfen.

OpenCalais ist als Web Service realisiert. Nach der Registrierung kann man seine Texte mittels REST- oder SOAP-Schnittstelle an den OpenCalais-Server übertragen und erhält eine semantisch annotierte Version des Ursprungsdokuments zurück. Erkannt werden im Text vor allem geografische Namen (Städte, Länder, Kontinente) oder andere Entitäten (Unternehmen, Adressen, Ereignisse, Musikstücke, wichtige Persönlichkeiten). OpenCalais kann außerdem eine grobe Kategorisierung des Dokuments vornehmen (z. B. Business/Finance, Entertainment, Politics, Technology) oder sogar komplette Faktenbeziehungen extrahieren. Die so gewonnenen Kategorisierungen kann man dazu nutzen, um verbesserte Such- und Navigationsmöglichkeiten anzubieten.

Neben dem puren Web Service existieren bereits eine Reihe darauf aufbauender Anwendungen, zum Beispiel ein Browser-Plugin (Gnosis), das Webseiten analysiert und annotiert, sowie Integrationen in WordPress (Tagaroo) oder Drupal (Calais). Mehr dazu lesen Sie im Artikel „Semantic Web Tools“ auf Seite 26.

OpenCalais basiert auf innovativen Text-Mining- und Natural-Language-Processing-Techniken, die es ermöglichen, die in natürlichsprachlichen Texten enthaltenen Informationen in eine maschineninterpretierbare RDF-Notation zu überführen. Dies funktioniert im Allgemeinen nur sehr unzuverlässig, deshalb beschränkt sich OpenCalais auch auf spezifische Domänen, zum Beispiel spezielle Arten von Wirtschaftsinformationen.

Semantische Wikis

Bei der Pflege von Tripel-Stores für eine semantische Webapplikation kann OntoWiki [7], ein semantisches Daten-Wiki, helfen. OntoWiki kann am ehesten als eine Kombination aus phpMyAdmin für Tripel-Stores und einem klassischen Text-Wiki verstanden werden.

Konsequenterweise vereint OntoWiki Funktionalitäten für das Management von RDF-Modellen und Vokabularen wie Import, Export und Zugriffskontrolle mit einer leicht zugänglichen Oberfläche für Nutzer, die kollaborativ semantische Daten pflegen. Dabei unterstützt OntoWiki folgende Anwendungsszenarien:

  • Backend: OntoWiki wird für die Pflege eines RDF-Modells im Backend eingesetzt. Die eigentliche semantische Webapplikation kommuniziert über Schnittstellen (wie dem integrierten SPARQL-Endpoint) mit OntoWiki.
  • Frontend: OntoWiki wird als semantisches Daten-Wiki verwendet und kann über Plugins erweitert werden.
  • Framework: Eine semantische Webapplikation wird auf Basis des OntoWiki-Application-Frameworks entwickelt und benutzt dabei vordefinierte Widgets und Interfaces.

Ein schönes Beispiel für die Nutzung von OntoWiki als Backend ist das holländische Tourismus-Portal Vakantieland [8]. Dieses nutzt insbesondere Anfragen auf SPARQL-Basis, um touristische Ziele als Teil einer großen semantischen Datenbasis abzufragen.

Neben OntoWiki existieren weitere semantische Wikis, die auf andere, weniger datenorientierte Nutzungsszenarien abzielen. Das bereits weit verbreitete Semantic MediaWiki (SMW) [9] zum Beispiel ist im Gegensatz zu OntoWiki vor allem für die Annotation von Wiki-Texten mit semantischen Verweisen geeignet.

SMW ist dabei als Erweiterung für das populäre MediaWiki-System realisiert, mit dem auch die Wikipedia betrieben wird. SMW erweitert die MediaWiki-Syntax um die Möglichkeit, Verweise zwischen Wiki-Seiten zu typisieren und Datenwerte in Artikeln entsprechend zu annotieren. Im folgenden Beispiel ist die Typisierung des Verweises zur Seite über die Bundesrepublik und die Annotation der Einwohnerzahl mit einer passenden Property auf der Wiki-Seite über Berlin dargestellt:

Semantic MediaWiki Syntax
Berlin ist die Hauptstadt der [[capital of::Bundesrepublik Deutschland]] und hat 
[[has population::3,396,990]] Einwohner.

Listing 4

SMW kann dann auf Basis dieser semantischen Repräsentationen die beiden RDF-Tripel „Berlin -> capital_of -> Bundesrepublik_Deutschland“ und „Berlin -> has_population -> 3,396,990“ speichern. Wenn viele Wiki-Artikel auf diese Weise annotiert sind, ergibt sich eine sehr große Wissensbasis, die mit speziellen Anfragen abgefragt werden kann.

SMW ermöglicht so zum Beispiel das Einbetten generierter Abfrageresultate in Wiki-Seiten, sodass eine Liste von Hauptstädten sortiert nach Einwohnerzahl zum Beispiel nicht mehr manuell gepflegt werden muss. Inzwischen gibt es für SMW bereits einige Erweiterungen, mit denen auch komfortable Eingabeformulare erzeugt oder Anfrageergebnisse auf einer Karte oder Zeitleiste direkt in MediaWiki-Seiten dargestellt werden können.

Fazit

Semantische Technologien haben sich in den letzten Jahren dramatisch weiterentwickelt und ermöglichen es inzwischen, auf einfache Weise Webapplikationen mit semantischen Schnittstellen auszustatten und Datenbestände entsprechend den Daten-Web-Standards im Web zu publizieren. Je mehr Datenquellen und Webseiten dem Daten-Web-Paradigma folgen, desto näher rückt das Ziel vom intelligenten Web, das nicht nur die Suche nach geräumigen Altbauwohnungen in der Nähe Thailändischer Restaurants ermöglichen wird.

Mehr zu diesem Thema
Fast fertig!

Bitte klicke auf den Link in der Bestätigungsmail, um deine Anmeldung abzuschließen.

Du willst noch weitere Infos zum Newsletter? Jetzt mehr erfahren

Anzeige
Anzeige
Schreib den ersten Kommentar!
Bitte beachte unsere Community-Richtlinien

Wir freuen uns über kontroverse Diskussionen, die gerne auch mal hitzig geführt werden dürfen. Beleidigende, grob anstößige, rassistische und strafrechtlich relevante Äußerungen und Beiträge tolerieren wir nicht. Bitte achte darauf, dass du keine Texte veröffentlichst, für die du keine ausdrückliche Erlaubnis des Urhebers hast. Ebenfalls nicht erlaubt ist der Missbrauch der Webangebote unter t3n.de als Werbeplattform. Die Nennung von Produktnamen, Herstellern, Dienstleistern und Websites ist nur dann zulässig, wenn damit nicht vorrangig der Zweck der Werbung verfolgt wird. Wir behalten uns vor, Beiträge, die diese Regeln verletzen, zu löschen und Accounts zeitweilig oder auf Dauer zu sperren.

Trotz all dieser notwendigen Regeln: Diskutiere kontrovers, sage anderen deine Meinung, trage mit weiterführenden Informationen zum Wissensaustausch bei, aber bleibe dabei fair und respektiere die Meinung anderer. Wir wünschen Dir viel Spaß mit den Webangeboten von t3n und freuen uns auf spannende Beiträge.

Dein t3n-Team

Melde dich mit deinem t3n Account an oder fülle die unteren Felder aus.

Bitte schalte deinen Adblocker für t3n.de aus!
Hallo und herzlich willkommen bei t3n!

Bitte schalte deinen Adblocker für t3n.de aus, um diesen Artikel zu lesen.

Wir sind ein unabhängiger Publisher mit einem Team von mehr als 75 fantastischen Menschen, aber ohne riesigen Konzern im Rücken. Banner und ähnliche Werbemittel sind für unsere Finanzierung sehr wichtig.

Schon jetzt und im Namen der gesamten t3n-Crew: vielen Dank für deine Unterstützung! 🙌

Deine t3n-Crew

Anleitung zur Deaktivierung
Artikel merken

Bitte melde dich an, um diesen Artikel in deiner persönlichen Merkliste auf t3n zu speichern.

Jetzt registrieren und merken

Du hast schon einen t3n-Account? Hier anmelden

oder
Auf Mastodon teilen

Gib die URL deiner Mastodon-Instanz ein, um den Artikel zu teilen.

Anzeige
Anzeige