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