Linkwerk Logo

SPARQL - Anfragesprache für das Semantic Web

Autor: Bastian Spanneberg. Zuletzt aktualisiert: $Date: 2008/03/17 14:22:07 $

Überblick · Implementierungen · SPARQL-Endpoints · Artikel und Tutorials

Über diese Seite: Diese Seite entstand als Begleitung zum Vortrag "SPARQL in der Praxis" auf dem iX Forum Software & Systems im Rahmen der Cebit 2008. Sie bietet einen Überblick über zugrundeliegenden Techniken, sowie Links auf Implementierungen, Beispiele und weiterführende Artikel zum Thema. Die Seite wird auch über den Vortrag hinaus weitergepflegt, erhebt aber keinen Anspruch auf Vollständigkeit. Sollten Sie Interesse an Beratung oder Lösungen im Bereich semantischer Technologien haben, zögern Sie nicht uns anzusprechen.

Überblick

SPARQL, Kurzform für SPARQL Protocol and RDF Query Language steht für eine Reihe von Empfehlungen, die das W3C im Januar 2008 verabschiedet hat.

SPARQL Query Language for RDF
definiert eine Anfragesprache für RDF-Datenbestände. Es werden dabei keine Unterschiede zwischen lokalen und entferten Datenbeständen gemacht. Dies prädestiniert SPARQL für die verwendung in Szenarien in denen auf verteilte Datenbestände zugegriffen werden muss.
SPARQL Protocol for RDF
beschreibt ein Protokoll, das die Kommunikation mit RDF-Datenquellen die mit SPARQL angesprochen werden, sogenannten SPARQL-Endpoints, definiert.
SPARQL Query Results XML Format
definiert ein XML-Format, in dem SPARQL-Endpoints Anfrage-Ergebnisse an den Klienten zurückliefern sollen.

Implementierungen

Java

Jena Semantic Web Framework
Das bei HP entwickelte Jena Framework, das mittlerweile in Version 2.5 vorliegt, gehört zu den ausgereiftesten im Open-Source-Bereich. Neben APIs zum Umgang mit RDF- und OWL-Daten beitet es ausserdem mit ARQ eine SPARQL-Implementierung, die vollständig die Testsuite des W3C besteht. Hier kommt Jena zu gute, dass Andy Seabourne, einer der Editoren der SPARQL Query Language, gleichzeitg einer der Chefentwickler des Jena-Frameworks ist. Zusätzlichgehören zu Jena auch Komponenten zur persisten Speicherung von RDF, sowie mit Joseki ein Query-Server für SPARQL-Anfragen.
Sesame
Ein weiterer bekannter Vertreter in der Java-Ecke ist Sesame. Ebenfalls bereits in Version 2 erhältlich bietet Sesame Funktionen zum Umgang mit RDF und RDFS, sowie Abragen mittels SPARQL. Ausserdem sind Wrapper-Klassen enthalten die einen einfachen Umgang mit verbreiteten RDF-Vokabularen wie Dublin Core, FOAF und RSS erlauben.

PHP

ARC
Auch ARC liegt bereits in Version 2 vor. Es beinhaltet Methoden zum Parsen und Verarbeiten von RDF, bietet persistente Speicherung von RDF in MySQL-Datenbanken und eine SPARQL-Query-Engine, sowie die Möglichkeit einen SPARQL-Endpoint damit aufzusetzen.

C

Rasqual / Redland RDF API
Auch Dave Becketts Redland RDF Framework beinhaltet mit Rasqual einen SPARQL-Processor. In anderen Libraries sind auch diverse RDF-Parser und -Writer sowie Möglichkeiten zur persistenten Speicherung vorhanden.

Python

RDFlib
RDFlib bietet Möglichkeiten zum Einlesen und Serialisieren von RDF. Graphen können sowohl im Speicher als auch in Datenbanken gehalten werden und mit SPARQL abgefragt werden. An RDF-Formaten unterstützt RDFlib RDF/XML, N3, NTriples, Turtle, TriX und RDFa.

C#

SemWeb C# RDF Library
Die SemWeb C# RDF Library bietet Unterstützung zum Lesen und Schreiben von RDF, Speicherung von RDF-Graphen, einfaches Graphen-Pattern-Matching oder Abfragen mit SPARQL, sowie eine eingeschränkte Unterstützung für RDFS-Inferenz.

Sonstige

Eine regelmässig aktualisierte Überischt über verschiedene Implementierungen findet sich im Wiki des W3C. Deren Stand im Bezug auf die Testsuite findet sich im SPARQL Implementation Coverage Report.

SPARQL-Endpoints

sparql.org
Auf dieser Seite befindet sich eine Installation des SPARQL-Servers Joseki, mit einem sehr kleinen Datenbestand. Die seite ist gut geeignet um erste Gehversuche mit SPARQL-Anfragen zu machen.
dbpedia.org
Hier findet man eine mit RDF aufbereitete Datenbank von Wikipedia-Inhalten, die sich mit SPARQL abfragen lässt. Der Datenbestand umfasst ca. 218 Millionen RDF-Tripel die aus verschiedensprachigen Version der Wikipedia extrahiert wurden. Mehr Informationen dazu gibt es hier.

Artikel und Tutorials