SPARQL ist eine mächtige Anfragesprache für RDF-Daten.
Sie können mit dieser Sprache Abfragen in useren Daten durchführen; dazu stellen wir Ihnen den
B3Kat SPARQL-Endpoint zur Verfügung. Es gibt auch ein Html-Formular zur Eingabe einer Query.
Wir möchten Ihnen hier einige Beispiel-Queries vorstellen, wie Sie nach bestimmten Informationen suchen können. Unsere Beispiele richten sich vor allem an User, die schon etwas technisches und bibliothekarisches Wissen mitbringen. Um SPARQL zu lernen empfehlen wir Ihnen Tutorials wie das des Jena-Projektes: http://jena.apache.org/tutorials/sparql.html/.
SPARQL Service Description: Auffinden verwendbarer Prädikate und deren Häufigkeit
Bevor ein SPARQL-Endpoint sinnvoll eingebunden werden kann, benötigen Sie zunächst eine Liste der verwendeten Prädikate und deren Häufigkeiten. Da Abfragen zur Ermittlung der Zahlen sehr lange dauern, sammelt der Triplestore diese Information schon beim Laden des Datensets automatisch und gibt sie zurück, wenn der SPARQL-Endpoint ohne Query aufgerufen wird:
Die Response wird im Format RDF/XML ausgegeben, damit sie auch von Maschinen verwendbar ist. Es kann deshalb sein, dass Ihr Browser keine XML-Ansicht darstellt, sondern die Datei als Download auf Ihrer Festplatte speichert. Sie können die Datei dann in Ihrem Download-Ordner finden, und ggf. als Datei in Ihrem Browser öffnen.Suche nach Titeln zu einer SWD/GND-Nummer
Selbstverständlich finden Sie auch bei uns Literatur zum Thema SPARQL:
PREFIX dct:<http://purl.org/dc/terms/> SELECT * WHERE { ?titleUri dct:subject <http://d-nb.info/gnd/7693644-2> } LIMIT 50(Query-Ergebnis als Html anzeigen)
Hier wird nach allen Titeln im B3Kat gesucht haben, die das Thema (Schlagwort) "SPARQL" (http://d-nb.info/gnd/7693644-2) haben. So können Sie auch nach jedem anderen Schlagwort aus der Gemeinsamen Normdatei suchen.
Und hier etwas Literatur zum Thema "Schlagwortnormdatei", die diesen Recherchen zugrunde liegt:
PREFIX dct:<http://purl.org/dc/terms/> SELECT * WHERE { ?titleUri dct:subject <http://d-nb.info/gnd/4236472-3> } LIMIT 50(Query-Ergebnis als Html anzeigen)
Suche nach Bibliotheken im B3Kat, die ein bestimmtes Medium besitzen
Wenn Sie eine bestimmte Katalognummer haben (die BV-Nummer mit der die Titel-URIs gebildet werden), und herausfinden möchten welche Bibliotheken diesen Titel besitzen:
PREFIX frbr:<http://purl.org/vocab/frbr/core#> SELECT ?bibUri WHERE { <http://lod.b3kat.de/title/BV000023771> frbr:exemplar ?ExUri. ?ExUri frbr:owner ?bibUri. } LIMIT 50(Query-Ergebnis als Html anzeigen)
Sie können natürlich das erste und zweite Beispiel kombinieren; also alle Bibliotheken suchen, die Titel zum Thema 'SPARQL' anbieten:
SELECT ?bibUri WHERE { ?titleUri dc:subject <http://d-nb.info/gnd/7693644-2> . ?titleUri frbr:exemplar ?exemplarUri . ?exemplarUri frbr:owner ?bibUri } LIMIT 50(Query-Ergebnis als Html anzeigen)
Schließlich können Sie sich auch alle 'Zwischenergebnisse' anzeigen lassen; also alle gefundenen Werte für die in der Query verwendeten Variablen. Dazu fragen Sie im 'SELECT'-Teil der Query nicht nach einer bestimmten Variable, sondern nach dem Stern (*):
PREFIX dct:<http://purl.org/dc/terms/> PREFIX frbr:<http://purl.org/vocab/frbr/core#> PREFIX foaf:<http://xmlns.com/foaf/0.1/> SELECT DISTINCT ?bibUri ?bibName WHERE { ?titleUri dct:subject <http://d-nb.info/gnd/7693644-2> . ?titleUri frbr:exemplar ?exemplarUri . ?exemplarUri frbr:owner ?bibUri OPTIONAL { ?bibUri foaf:name ?bibName } } LIMIT 50(Query-Ergebnis als Html anzeigen)
Beachten Sie bei dieser Query bitte auch, dass hier die maximale Zahl der zurückgegebenen Zeilen hochgesetzt werden muß, damit die Trefferliste nicht bei 50
Treffern abgeschnitten wird: LIMIT 200
.
Das Kleingedruckte: Maximal 30 Sekunden pro Query
Der SPARQL-Endpoint versucht maximal 30 Sekunden lang, Ihre Query zu beantworten. Danach wird die Query mit einer Fehlermeldung abgebrochen.
Das stellt sicher, dass nicht eine Query die Rechner lahmlegt, und sonst niemand mehr zugreifen kann. Wenn Sie eine große Treffermenge abfragen möchten,
blättern Sie bitte durch die Treffermenge mit LIMIT
und OFFSET
. Hier ist ein kleines Beispiel zur Demonstration:
PREFIX dct:<http://purl.org/dc/terms/> PREFIX frbr:<http://purl.org/vocab/frbr/core#> PREFIX foaf:<http://xmlns.com/foaf/0.1/> SELECT DISTINCT ?bibUri ?bibName WHERE { ?titleUri dct:subject <http://d-nb.info/gnd/7693644-2> . ?titleUri frbr:exemplar ?exemplarUri . ?exemplarUri frbr:owner ?bibUri OPTIONAL { ?bibUri foaf:name ?bibName } } LIMIT 5 OFFSET 5
Sollte das nicht weiterhelfen, empfehlen wir Ihnen einen Download der gesamten Daten als RDF/Turtle (ca. 8GB).
Das Turtle-Format erlaubt auch die zeilenweise Verarbeitung z.B. mit zcat
und grep
. So können Sie die Daten
auch ohne eigenen Triplestore rudimentär verarbeiten.